# 数据库类型 - 关系型数据库:mysql,oracle,sql server - 非关系型数据库:memacach,redis,mongdb等 # mysql数据库的基本用法 ## mysql数据类型 ### 整型 - tinyint:占位1字节 - smallint:2 - mediumint:3 - int:4 - bigint:8 ### 浮点型 - 小数使用,但是由于四舍五入,所以不精确 - float(m,d):4 - double(m,d):8 ### 定点型 - 精确 - decimal(m,d):m代表总长度,d代表小数长度 ### 字符串类型 - 以下字符串表示长度由小依次变大 - char:定长字符串 - varchar:变长字符串 - tinytext:短文本字符串 - text:长文本数据 - mediumtext:中等长度文本数据 - longtext:极大文本数据 ### 时间类型 - DATE:YYYY-MM-DD - TIME:HH:MM:SS - YEAR:YYYY - DATETIME:YYYY-MM-DD HH:MM:SS - TIMESTAMP:YYYYMMDDHHMMSS:时间戳,方便,常用 ## 字段名的修饰 ### 列名的修饰 - unsigned(无符号) - auto_increment(自增) - default(默认值) - comment(字段解释说明) - not null(非空) - unique(索引) - index(索引) - primary key(主键) auto_increment必须制定为primary key ## sql运算符 - = != <> OR或者|| AND且&& BETWEEN..AND.. IN NOT IN ## sql语句的分类 - DDL:数据定义语言,创建删除修改库表的结构 - DML:数据操作语言,增删改表的记录 - DCL:用户创建以及授权 - DQL:数据查询语言,查询数据 # mql数据库之DDL ## 数据库操作 - use database 数据库名:使用数据库 - create database 数据库名:创建数据库 - drop database 数据库名:删除数据库 ## 数据表操作 - create table 数据表名(字段名,字段类型):创建数据表 - show tables :列出所有数据表 - desc 表名:查看表结构 - drop table 表名:删除表 - alter table 表名 modify 字段名 字段类型 :修改表结构 - change:修改表名 - add:添加字段 - ALTER TABLE user10 MODIFY email VARCHAR(200) NOT NULL DEFAULT 'a@a.com';-修改user10的email字段属性 - ALTER TABLE user10 MODIFY card CHAR(10) AFTER test;-将card移动到test后面 - ALTER TABLE user10 MODIFY test CHAR(32) NOT NULL DEFAULT '123' FIRST;- 把tset放到第一位 - ALTER TABLE user10 CHANGE test test1 CHAR(32) NOT NULL DEFAULT '123';-将tset字段改为test1 - alter table 表名 drop 字段名 :删除字段 - alter table 表名 rename to 新表名:修改表名 # DML - 插入:insert into 表名 (列1,列2,列3...) values (值1,值2,值3...) - 更新:update 表名 set 列1=值1,列2=值2 where 条件---不加where会修改所有记录 - 删除:delete from 表名 where 条件---不加where就会删除所有记录 - truncate:也是删除,而且会重置id # DCL - mysql -uroot -p - use mysql; - show tables; - select user,host,authentication_string from user:查询用户名,主机地址,密码 - delete from user where user=...删除用户 - update user set password=新密码 where user=...:修改密码 - 刷新权限:flush privileges; # DQL ## 查询 - select 列名1,列名2... from 表名 where 条件---不加where会把所有记录查出来 - select distinct(字段名) from 表名:过滤重复数据 - select concat_ws('分隔符'字段名,字段名)as 别名 from 表名;数据连接,将数据以连接的形式展现出来。 - select 列名 from 表名 where 字段名 like ‘条件:模糊查询’ - 'ja%':以ja开头的数据 - '%ck':以ck结尾的数据 - '%np%':内容包含np的数据.yy ## 排列 - select * from 表名 order by 字段名 asc :(升序 默认 可不加) - select * from 表名 order by 字段名 desc :(降序) ## 聚合函数 - select count(*) from 表名:查询表的记录数 - select sum(列名) from 表名:查询此列的和 - select avg(列名) from 表名:查询此列的平均值 - select max(列名) from 表名:查询此列的最大值 - select min(列名) from 表名:查询此列的最小值 ## 分组查询 - select * from 表名 group by sex :按照性别分组 - select * from 表名 group by sex HAVING count(*) > 3