MySql命令
操作数据库
- 创建数据库:create database test;
- 删除数据库:drop database test;
- 使用数据库:use test;
- 查看数据库:show databases;
操作表
表结构相关
- 创建表:create table emp(ename varchar(10),hiredate date,sal decimal(10,2),deptno int(2))
指定主键:
create table user_info(
id smallint unsigned auto_increment primary key,
username varchar(20) not null )
- 查看表的定义:desc emp;
- 查看表的详细定义:show create table emp \G; \G 表示使记录能按着字段竖着排列
- 删除表:drop table emp;
- 修改表
- 修改字段定义:alter table emp modify ename varchar(20) first; 修改ename 的定义,并把它置于最前面。
- 修改字段定义:alter table emp modify ename varchar(20) after sal; 修改ename 的定义,并把它置于 sal 的后面。
- 增加字段:alter table emp add column age int(3);(同修改的时候,在最后能带上first和after)。
- 删除字段:alter table emp drop column age;
- 修改字段名:alter table emp change age age1 int(4);(最后能带上first和after)
- 修改表名:alter table emp rename emp1;
复制表
- 复制表但是不复制数据
create table user1 like user; - 复制表,并且复制数据
create table user1 select from user
插入数据
- 从另一个表中拷贝数据进行插入
- 假定两个表的结构一致
insert into user1 select from user - 假定两个表结构不一致, user1 比 user 多了一个 score 字段
insert into user1 score from select name, age, id, 20 from user;
- 假定两个表的结构一致
- 插入数据
- 通用格式
insert into user1 (name, age, id) values (“Jhon”, 20, 1); - 不指定字段, 但是 values 后面的顺序要和字段的顺序保持一致。
insert into user1 values(“Jhon”, 20, 1); - 对于可空字段,非空但是有默认值的字段,自增字段 可不指定
- 也可以一次性插入多条字段。
insert into user1 values(“Jhon”, 20, 1), (“Gellia”, 18, 2);
- 通用格式
删除数据
- delete:删除命令
- 根据指定字段进行删除,例如:”delete from user_info where id = 1”
- 排除指定集合进行删除,例如: “delete from user_info where id not in(1, 2)” 删除除了 id 为 1 或者 2 的其他所有记录
- drop:删除命令
- 删除表:drop table user_info
- 删除数据库:drop database test
修改数据
- 通用的更新操作
update user set sex = “man”, name = “john” where id = 1 - 同时操作多个表的数据
update emp a,dept b set a.sal=a.sal*b.deptno,b.deptname=a.ename where a.deptno=b.deptno;
查询数据
- select:常见的查询
select sex, name from user_info where id = 1
select * from emp where deptno not in (1, 2) - 对查询结果进行排序
使用关键字 order by 来实现排序。默认为升序,desc 降序,asc 升序。
- select * from emp order by deptno;
- select * from emp order by deptno,sal desc;
- select * from emp order by sal limit 3; 显示排序后的前 3 条记录。
- select * from emp order by sal limit 1,3; 从第 2 条开始,显示前 3 条记录。