登陆:mysql -u root -p
创建一个使用utf-8字符集的数据库:create database 数据库名称 character set 'utf8';
创建数据库:create database 数据库名称 character set 编码 collate 校对规则;
查看数据库:show database(databases:所有数据库);
使用数据库:use databasename;
查看数据库创建信息: show create database;
查看当前使用数据库:select database;
删除数据库:drop database;
删除:truncate table-name:
创建表格:create table 表名称(
字段1 类型(长度) 约束,
字段2 类型()最后一个不加逗号
);
查看表:show create table 表名
show tables
desc 表名
选择表:select table
数据类型:
eg:create table 表名称(
usename varchar(10),//可变长度 自动变所需长度
usename2 char(100) //不可变长度 自动用空格补齐
);
大数据类型:
BLOB :Z字节(电影 MP3)
TEXT :字符(文本的内容)
数值型:
INT BIGINT FLOAT DOUBLE TINYINT SMALLINT
逻辑性:BIT
日期型:
DATE:年月日
TIME:时分秒
DATETIME:年月日时分秒 字符为空就字段为空
TIMESTAMP:年月日时分秒 设置字段为空,用系统时间
改
添加新字段:
alter table 表名称 add 字段名称 数据类型() 约束;
修改数据类型,长度,约束
alter table 表名称 modify 字段名称 数据类型() 约束;
删除某个字段:
alter table 表名称 drop 字段名称 ;
修改字段名称:
alter table 表名称 change 旧字段名称 新字段 数据类型() 约束;
修改表名称:
rename table 旧表名 to 新表名;
插入数据:insert into 表 (字段1,字段2,) values(值1,’字符串和日期类型要单引括起‘)
insert into 表名称 values(值1,’字符串和日期类型要单引括起‘)
修改所以sql语句:update 表称 set 名称 =xxx;
指定修改:update user set 名称 =xxx,xx = ‘xxx’ where id=‘xx’
在原基础上增加: update user set sal =sal+xx where username
查询表中信息:select * from 名称;
删除表内容:delete from 表名称 where money=30000;
删除表中所以相同内容:delete from 表名称 where money=30000;
查询单个名称和对应信息:select 名称,名称 from 表名称;
在某个名称加值:select 名称,名称+10,名称+10 from 表名称;
去除制定字段重复数据:select distinct 名称 from 表名称;
查询某个数据:select uesename,名称 from 名称 where 字段名称>90;
使用别名表示学生分数:select usename,(名称+名称+)as(可省略) 别名 from 表名称;
事物查询:start transaction;
<>:不等于
turn
where后可跟 in(代表范围)
like(模糊查询)张_ %张(以张结尾) %张%(有张就行)
and or not(非)between-and
升序和降序:order by 字段 asc(升)/desc(降)(写后面)
聚合函数
select count(*/名称)(求行数量)/sum(求一列数据的和)/avg(求平均分)/max()/min() from 表名称
分组
查所有数据,默认分一组:select * from名称;
根据字段分组:group by 字段 having 条件; 数据分类
group_concat:数据种类。
约束
唯一约束:声明字段是唯一的,值不能相同 unique
非空约束:字段不能为空 not null
主建:primary key; 一张表只能有一个
无负字符:unsigned;
主建自增:auto_increment;后面的id填null;
外键:dno int,,保证数据的完整性
foreign key (dno) references(映射到该表中字段) 对应表名
删除外键:alter table table-name drop foreign key 外键名称。
笛卡尔积
select * from 表1,表2;
内链接查询
普通内连接:select * from 主表名称 inner join 外表名称 on 主键名称 = 外键名称;必须主外键关联
隐式内连接:select * from 主表名称,外表名称 where 主键名称 = 外键名称;不需要主外键关联
可以用普通内连接一定可以用隐式内连接
查询的是两张表交集数据 主外键有关联的数据;
外链接查询
左链接:select * from 左表名称 left outer join 右表名称 on 主键=外键;
外连接:select * from 右表名称 right outer join 左表名称 on 主键=外键;
outer可省略;
查询左/右表 所有数据
子查询:select username,english from 表名称 where english > (select avg(english) from 表名称);
子查询(定义):查询语句的嵌套,
in(20,30):有20,30这个数
varchar(可变)和char
多表连接
插入语句:insert
删除表数据:drop ,delete
正则表达式
约束,主键,外键
decimal: