语法:CREATE TABLE table_name (column_name column_type);
create table student(
-> id INT NOT NULL AUTO_INCREMENT,
-> name CHAR(32) NOT NULL,
-> age INT NOT NULL,
-> regiiter_date DATE,
-> PRIMARY KEY(id)
-> );
auto_increment 表示:自增1。写入内容为空时,默认从1,2,3...往下填充写入表格中。primary key: 表示约束(不能重复且不能为空); 加速查找not null: 不为空
查看表
show tables; -->查看有哪些表
desc student; --> 查看student表的信息
show create table student; -->查看表student创建的信息
#drop table 表名
drop table student;
添加列:alter table 表名 add 列名 类型
删除列:alter table 表名 drop column 列名
修改列:
alter table 表名 modify column 列名 类型; -- 类型
alter table 表名 change 原列名 新列名 类型; -- 列名,类型
添加主键:
alter table 表名 add primary key(列名);
删除主键:
alter table 表名 drop primary key;
alter table 表名 modify 列名 int, drop primary key;
添加外键:alter table 从表 add constraint 外键名称(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);
删除外键:alter table 表名 drop foreign key 外键名称
修改默认值:ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
删除默认值:ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
1.增加
ALTER TABLE student ADD sex CHAR(32); #-->增加一列
2.删除
ALTER TABLE student DROP sex; #-->删除一列
3.修改表名
ALTER TABLE student RENAME TO students; #-->重命名
4.修改列名
ALTER TABLE students CHANGE regisiter_date register_date DATE;
#change 字段名,类型都可以改,modify只能改类型
语法:
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
插入数据:
mysql> INSERT INTO student(name,age,regisiter_date)
-> VALUES('derek',22,'2017-01-01');
语法
1.SELECT column_name,column_name
2.FROM table_name
3.[WHERE Clause]
4.[OFFSET M ][LIMIT N]
查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
SELECT 命令可以读取一条或者多条记录。
你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
你可以使用 WHERE 语句来包含任何条件。
你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
你可以使用 LIMIT 属性来设定返回的记录数。
1.SELECT * FROM student LIMIT 2 OFFSET 2;
#limit: 查几条数据
#offset: 从第几个开始查
2.SELECT * FROM student where id>1;
#条件判断
3.SELECT * FROM student where id>1 and age<22;
#多个条件
4.SELECT * FROM student where name like "De%";
#like模糊查询
update students set name = "Eric" where id=3;
delete from students where id>3;
排序
select * from 表 order by 列 asc - 根据 “列” 从小到大排列
select * from 表 order by 列 desc - 根据 “列” 从大到小排列
select * from 表 order by 列1 desc,列2 asc - 根据 “列1” 从大到小排列,如果相同则按列2从小到大排
select * from students order by id desc;
#--->按id倒叙排列
1.按名字分组后,并且统计名字出现的次数
select name,count(*) from students group by name;
2.按名字分组后,把年龄加起来
select name,sum(age) from students group by name;
select name,sum(age) as rename_sumage from students group by name;
#加as,可以自定义sum(age)的名字
JOIN 按照功能大致分为如下三类:
交集
select * from A inner join B on A.a=B.b;
差集
select * from A left join B on A.a=B.b;
select * from A right join B on A.a=B.b;
并集
select * from A left join B on A.a=B.b union select * from A right join B on A.a=B.b;
MySQL 事务主要用于处理操作量大,复杂度高的数据。
特性:
begin -->开启
insert into ...... -->要写入的内容
rollback; -->回滚到原来状态
commit; -->确认提交
MySQL支持外键的存储引擎只有InnoDB , 在创建外键的时候 , 要求父表必须有对应的索引 , 子表在创建外键的时候也会自动创建对应的索引