连接数据库
mysql -uroot -p
查询所有数据库
show databases;
切换数据库
use 数据库名;
查询数据库的表
show tables;
显示表结构
desc student;
创建数据库
create database if not exists 数据库名;
删除数据库
drop database 数据库名;
建表
create table t1(
s_id int primary key auto_increment,
s_name varchar(64) not null unique,
sex char(1) default '1',
score float check(score>=0.0 and score<=100.0)
)
插入语句
主键列插入1
insert into t1(s_name,sex,score) values(‘张翠山’,'1',99.0); --由数据库自动增,永不重复(单线程)
原理
select max(s_id) from t1;
select max(s_id)+1;
主键列插入2
insert into t1(s_id,s_name,sex,score)values(33,'小昭','0',88.0);
默认值列的插入
对默认值,我们可以给值,也可以不给值
insert into t1(s_name,score)values('张无忌',95.5);
insert into t1(s_name,sex,score)values('金星','0',100.0);
对于非空约束列的插入
必须给值,否则违背数据完整性,无法执行
insert into t1(s_name,sex,score)values('','0',76.0);
数据库的事物(Transaction)的特征ACID
1.原子性(Atomicity)
2.一致性(Consistency)
3.隔离性(lsolation)
4.持久性(Durability)
mysql提供事物处理命令
commit;
rollback;
savepoint;
begin;
查看系统变量的命令
show variables like '%commit%';
修改提交方式为手动提交
会话级别
set session autocommit=0;
全局级别
set global autocommit=0;
savepoint的演示案列
begin;
insert into t1(s_name,score)values('hcxy1',100);
savepoint a;
insert into t1(s_name,score)values('hcxy2',99);
insert into t1(s_name,score)values('hcxy3',80);
savepoint b;
insert into t1(s_name,score)values('hcxy4',70);
rollback to savepoint b;
rollback;
rollback to savepoint a;
mysql的分页查询
select * from t1 limit 0,2;
limit后面的第一个参数是起始记录号,从0开始;
limit后面的第二个参数是每页的记录数,例如,每页3条记录。
常见函数:md5("字符串") 32位、uuid() 36位,产生随机数