mysql> show databases;
mysql> create database cgb2108; mysql> create database cgb210801 default character set utf8; #指定字符集,避免了中文乱码
mysql> drop database cgb2108; #谨慎操作
1,查询所有表 mysql> use cgb210801; #使用指定的数据库 Database changed mysql> show tables; #查询所有表
语法: create table 表名(字段名称 字段类型(字段长度),字段2,字段3....) mysql> create table tb_door( -> id int(11), -> door_name varchar(100), -> tel varchar(20) -> );
语法: alter table 表名 添加字段 字段名称 字段类型(字段长度) mysql> alter table student add column address varchar(100);
mysql> desc student;
mysql> drop table 表名
* 在实际中用具体数据记录代表,不用*
语法: 查询 所有 表名 mysql>select * from tb_door;
语法: 插入数据 表名 值(字段1的值,字段2的值,字段3的值) 注意:表里有几个字段values需要提供几个值+值的顺序和字段顺序一致 mysql> insert into tb_door values(10,'test',"010-666");
语法: 更新 表名 设置 字段名=字段的新值 mysql> update tb_door set tel='010-857';
语法: delete from 表名 mysql> delete from tb_door; #删除了表里的所有记录
SELECT 'ABC',LOWER('ABC') from dept;
select upper(dname) from dept
select length(dname) from dept
SELECT dname,SUBSTR(dname,1,3) FROM dept;
select dname,concat(dname,'123') X from dept
select dname,replace(dname,'a','666') X from dept
select ifnull(comm,10) comm from dept2
直接四舍五入取整 select comm,round(comm) from emp –四舍五入并保留一位小数 select comm,round(comm,1) from emp –ceil向上取整,floor向下取整 select comm,ceil(comm) ,floor(comm) from emp
SELECT UUID()
select now() -- 年与日 时分秒 select curdate() --年与日 select curtime() --时分秒
select now(),hour(now()),minute(now()),second(now()) from emp ; –year()年 month()月 day()日 select now(),year(now()),month(now()),day(now()) from emp ;
SELECT DISTINCT loc FROM dept;
and---并且 or --或 in ---等于多个数
select * from emp where ename='tony' and deptno=2 --相当于两个条件的&关系 select * from emp where ename='tony' or deptno=1 --相当于两个条件的|关系 select name, sal from emp where sal in(1400,1600,1800);
1%--以1开头的 %1以a结束 %a%包含
用is 不是=
select * from emp where mgr is null --过滤字段值为空的 select * from emp where mgr is not null --过滤字段值不为空的
闭区间
select * from emp where sal<=3000 and sal>=10000--等效 select * from emp where sal between 3000 and 10000--等效
分页,限制数据展示的条目
1. 一个参数:列出前俩条---limit 2
2.俩个参数:从n+1条开始,展示p条信息 limit n,p
select * from emp limit 2 --列出前两条 select * from emp limit 1,2 --从第二条开始,展示2条记录
升序asc
1.数字查询:数字大小排序
2.字母:按照字母的顺序排序
3.日期:数字的大小排
4.中文:utf-8的码表来排
降序desc
根据一列统计结果
组group by 根据什么时候分组果出现了聚合列和非聚合列都有的,一定需要分组
分组的规则:按照非聚合分组
过滤后必须用having
char为定长字符串,char(n),n最大为255
varchar为不定长字符串,varchar(n),n最大长度为65535
char(10)和varchar(10)存储abc,那它们有什么差别呢?
char保存10个字符,abc三个,其它会用空格补齐;而varchar只用abc三个位置
Primary Key 主键约束,自动创建唯一索引
Foreign Key 外键约束,外键字段的内容是引用另一表的字段内容,不能瞎写
Unique Index 唯一索引,唯一值但不是主键
对于约束的好处时,数据库会进行检查,违反约束会报错,操作失败。数据库提供了丰富的约束检查,还有其他约束,但现今弱化关系型数据库的前提下,基本已经很少使用,记住上面三个即可。
drop删除库或者表,数据和结构定义
delete和truncate只是删除表的数据
delete可以指定where条件,删除满足条件的记录,tuncate删除所有记录
对于自增字段的表,delete不会自增值清零,而truncate是把表记录和定义都删除了,然后重建表的定义,所以自增主键会重头开始计数
数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。
原子性(Atomicity,或称不可分割性)、
一致性(Consistency)、
隔离性(Isolation,又称独立性)、
持久性(Durability)。
事务隔离分为不同级别,包括
读未提交(Read uncommitted) 安全性最差,可能发生并发数据问题,性能最好
读提交(read committed) Oracle默认的隔离级别
可重复读(repeatable read)MySQL默认的隔离级别,安全性较好,性能一般
串行化(Serializable) 表级锁,读写都加锁,效率低下,安全性高,不能并发