MySql基础-1
*sql of databse
1.create databse
create database mydb1;
create database mydb2 character set utf8;
create database mydb3 character set utf8 collate
create database 数据库名;
create database 数据库名 character set 编码;
create database 数据库名 character set 编码 COLLATE 校验集;
2.show databses;
show databases;
select database(); 查看当前数据库
3.显示数据库的创建语句
show create database 数据库名
4.delete database
drop database 数据库名;
5.update database
alter database 数据库名 character set 字符编码集 collate 校验集;
use 数据库名; 切换数据库
*sql for the table
1.create
create table 表名(
字段1 字段类型,
字段2 字段类型,
....
字段n 字段类型
);
ex:
create table employee(
id int primary key auto_increment,
name varchar(20) not null,
gender varchar(10) unique,
birthday date,
entry_date date,
job varchar(100),
salary double,
resume longtext
);
2.show the table
desc tablename;
3.删除表
drop table 表名;
4.修改表
alter table 表名
1.add 添加一个新的列.
alter table users add password varchar(20);
2.modify 修改列
alter table users modify password int;
3.drop 删除列
alter table users drop password;
4.change 修改列名
alter table users change password pwd varchar(10);
5.insert
insert into 表名(字段1,字段2,...) values(值1,值2,....);
5.update data
update 表名 set 字段=值,字段1=值.
按条件进行修改
update 表名 set 字段=值,字段1=值,..... where 条件;
6.delete data
delete from 表名;---所有数据全都删除
delete from 表名 where 条件.
*datatype for the mysql
***mysql中的表的字段类型有n多种
java中的数据类型 mysql数据类型
byte SMALLINT
short MEDIUMINT
int int
long bigint
float float
double double
boolean bit
String char varchar
java.sql.Date Date DateTime
java.sql.Time Time
java.sql.TimeStamp TimeStamp
***在数据库中字符与字符串是同样的概念。 varchar char
char与varchar区别?
char定长的.
varchar是不定长的.
***关于数据库中的日期类型与java中的日期类型处理问题:
在java---》 java.util.Date类型。
而在数据库中有一个Date类型 。它与java中的 java.sql.Date对应.
***在java中对于数据库对应的还有其它几种类型.
java.sql.Date--------Date DateTime
java.sql.Time--------Time
java.sql.TimeStamp---TimeStamp
***大数据类型
blob----大二进制类型. -------InputStream对应.
text----大文本类型 -------Reader对应
tinyblob tinytext 255字节
blob text 64KB
mediumblob mediumtext 16MB
longblob longtext 4GB
***关于mysql中的小数类型
float
double
NUMERIC(5,2)
3.关于表的约束
约束的是什么?它的作用?
对字段进行约束就是强制对字段的特性进行控制。
添加约束可以提高我们的数据的完整性与安全性。
1.主键约束
我们可以让某一个字段是主键,如果这个字段是主键后,它具有两个特性.
1.唯一性
2.非空
怎样添加主键?
在字段上添加上 primary key就可以。
在开发中一般对于主键来说,它不具有任何意义,只是用来做标识。
对于主键,它是唯一不可重复,在mysql中可以通过 auto_increment来让int类型的字段进行自动增长.
sqlservet--------identity(1,1)
oracle------------使用它sequence
2.非空约束
not null
3.唯一约束
unique
4.外键约束(多表)
***插入数据时的注意事项:
1.数据需要使用引号引起来.数例类型可以不用.
2.如果插入空值,使用null.
3.插入的数据必须与字段的类型匹配.
4.指定的列数与数值要对应.
5.插入的数据长度不能超出列的指定长度.
***关于插入时的中文问题:
insert into users values(null,'张三','1999-10-10');
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'username' at row 1
在插入中文时报错.
原因:我们当前使用的cmd窗口它是一个客户端,在这个客户端中所使用的是编码是当前系统默认的编码。
mysql数据库服务器在安装时,我们指定了编码 utf8,那么它的客户端与服务器端都是utf8编码。
解决方案:
在mysql的安装文件下查找一个人my.ini文件.
修改my.ini文件事重新启动服务.
临时修改
在mysql中一共有6个地方使用了字符集.
client connetion result 和客户端相关 、database server system 和服务器端相关
查看系统所有字符集 : show variables like 'character%';
可以通过 -->set names gbk ;
***sql的关于删除数据:
drop table 表名-------它用于删除表结构.
delete from 表名 ------它用于删除表中的数据,表还存在.
truncate 表名.---------它与delete一样,都是用于删除表中数据。
delete与truncate的区别?
1.
delete删除时,是一条一条删除。它效率比较低.
truncate删除是先将表结构删除,在重新创建表结构.
2.
delete 是dml语句.
truncate不是dml语句.
对于dml语句它是可以受事务控制。在事务中,我们通过delete删除后数据可以恢复.
truncate它是不受事务控制。也就是说,删除后就不能在恢复。