1.数据库操作
显示数据库:show databases;
创建数据库:create database if not exists [数据库名字]
创建数据库并指定字符集:create database [库名] character set gbk;
删除数据库:drop database [库名];
显示警告信息:show warnings;
2.数据表操作
创建数据表:
CREATE TABLE 表名 ( 字段名1 数据类型[完整的约束条件], 字段名2 数据类型[完整的约束条件] )ENGINE=InnoDB DEFAULT CHARSET=utf8;
数据表查询
-
查看数据表:
`SHOW TABLES;`
-
查看数据表结构:
`DESCRIBE 表名;`
-
查看表的创建信息:
`show create table 表名[\G];`
对表操作
-
修改表名
ALTER TABLE 旧表名 RENAME [TO] 新表名; 例子:
alter table sc rename score;
-
修改表的存储引擎
ALTER TABLE 表名 ENGINE=<更改后的存储引擎名>; 例子:
alter table student engine = myisam;
-
修改表的字符集
ALTER TABLE 表名 CHARACTER SET 更改后的字符集 ;例子:
alter table student modify sno varchar(10) character set utf8;
-
复制表
create table 新表名 select * from 旧表;
-
删除表
drop table 表名;
3.字段操作
-
字段约束目录
-
PRIMARY KEY 主键约束 NOT NULL 非空约束 UNIQUE 唯一约束 DEFAULT 默认值约束 FOREIGN KEY 外键约束 AUTO_INCREMENT 自动增加值
-
-
增删改字段操作
-
添加字段ALTER TABLE 表名 ADD 新字段名 数据类型 [列级约束条件] 例子:
alter table student add class char(10) after ssex;
-
删除字段ALTER TABLE 表名 DROP 字段名; 例子:
alter table student drop class;
-
修改字段的数据类型ALTER TABLE 表名 MODIFY 字段名 数据类型; 例子:
alter table product modify ProductID int(11) AUTO_INCREMENT;
-
修改字段名和数据类型ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型; 例子:
alter table student change sbirthday sbirth date;
-
-
字段约束添加
-
外键约束添加删除
-
添加:ALTER TABLE 从表ADD CONSTRAINT 外键名 foreign key (被加字段) references 主表(主表字段);
-
删除:alter table table_name drop foreign key 约束名
-
-
主键添加删除
-
先删后加:
-
删除:alter table table_name drop primary key
-
添加:alter table table_name add primary key (字段)
-
-
复合主键添加
-
多个字段组合而成的主键,表级约束
-
PRIMARY KEY (字段名1,字段名2,...)
-
-
非空约束添加删除
-
添加:alter table table_name modify 列名 数据类型 not null
-
删除:alter table table_name modify 列名 数据类型 null
-
-
唯一约束添加删除
-
添加:alter table table_name add unique 约束名(字段)
-
删除:alter table table_name drop key 约束名
-
-
自增添加删除
-
添加:alter table table_name modify 列名 int auto_increment
-
删除:alter table table_name modify 列名 int
-
-
默认值添加删除
-
添加:alter table table_name alter 列名 set default '值'
-
删除:alter table table_name alter 列名 drop default
-
-
-
查看表字段信息
-
查看表的字段信息:desc table_name;
-
4.对数据表数据操作
-
添加数据
-
为所有字段添加数据INSERT [INTO] 数据表名(字段列表) VALUES(值列表);
insert into student(sno,sname,ssex) values('1001','曹操','男');
如果向表中所有字段插入数据,可以省略字段列,可以写成:
insert into student values('1002','刘备','男');
-
为部分字段添加数据
INSERT [INTO] 数据表名 (字段名1 [, 字段名2] …) VALUES (值1[, 值2] …); INSERT [INTO] 数据表名 SET 字段名1 = 值1 [, 字段名2 = 值2] 字段名必须与数据相对应 一次只能加一条 `insert into student set sno='1004',sname='貂蝉',classno='19004';` `insert into student(sno,sname,classno) values ('1003','吕布','19001');`
-
一次添加多行数据INSERT [INTO] 数据表名 [(字段列表)] VALUES (值列表) [, (值列表)] …;
insert into student values ('1005','司马懿',null,null,null,null,'19003'), ('1006','大乔','女',null,null,null,'19003'), ('1007','小乔','女',null,null,null,'19003');
-
-
删除数据
DELETE FROM 数据表名 [WHERE 条件表达式];有WHERE条件,删除满足条件的记录,无WHERE条件,系统就会自动删除该表中所有的记录。删除example01表中所有记录:
select * from example01;
删除student表sno字段为1002的记录:delete from student where sno = '1002';
-
查询数据
查询当前表数据:
SELECT * FROM 数据表名
-
修改数据
UPDATE 数据表名 SET 字段名1 = 值1 , 字段名2 = 值2, …;有WHERE条件,修改符合要求的对应字段,无WHERE条件,修改表中所有对应的字段。
update student set classno = '19003' where sname = '貂蝉';
5.数据导出
-
使用 SELECT ... INTO OUTFILE 语句导出数据
SELECT 导出的字段 FROM 导出的表 INTO OUTFILE '路径(双反斜杠)' character set utf8 FIELDS TERMINATED BY ',' -- 字段之间用,间隔 默认'\t' ENCLOSED BY '\"' -- 设置字段包围字符 ESCAPED BY '\'' -- 转义字符,默认为'\' LINES STARTING BY 'val'; -- 每行的开头字符,默认不使用任何字符 TERMINATED BY '\r\n'; -- 每行的结尾字符,默认为'\n' -- 例子: SELECT * FROM student INTO OUTFILE 'C:\\ProgramData\\MySQL\\MySQL Server 5.7\\Uploads\\myschool35stu.txt' character set utf8 FIELDS TERMINATED BY ',' ENCLOSED BY '\"' ESCAPED BY '\'' LINES TERMINATED BY '\r\n';
6.视图
-
创建视图命令:
create view 视图名字 as
-
删除视图命令:
drop view 视图名;
-
修改视图数据:
update view_s set sname = '安琪拉' where sno = '2005020301'
-
删除视图数据:
delete from view_s where sname ='安琪拉'
7.索引
-
创建索引
-
建表时
CREATE TABLE <表名> ( <字段1> <数据类型1> [<列级完整性约束条件1>], <字段2> <数据类型2> [<列级完整性约束条件2>], [UNIQUE|FULLTEXT|SPATIAL] <INDEX|KEY> [索引名](属性名[(长度)] [,…]) ); create table test_index ( tid int, tname varchar(20), tcount double, index index_tid (tid) -- 普通索引 unique index index_test(tid,tname) -- 唯一索引 );
-
建表后
-
create语句:
create [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名 on 表(字段);
-
alter语句:
ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名 (属性名[(长度)] [,…]);
-
-