Mysql学习记录
MySQL的增删改查
一、 增(create、insert)
Create 关键字是创建数据库(datebase)和表(table)
Create datebase 数据库名
Create table 表名 (列名及属性)
1、 列的属性
字符串:
Char(字符串数):指定输入的字符串数,如不足会以空格补足
Varchar(字符串):可变的字符串
Text:文本类型。可以存储较大的文段,搜索速度稍慢,建议用char,varchar来代替
Blob:是二进制类型用来存储图像、音频等二进制信息
数值类型:
Tinyint:1个字节
Smallint:2个字节
Mediuint:3个字节
Int:4个字节
Bigint:8个字节
Unsigned:关键词修饰的数值类型为正数
小数型
Float(M,D),decimal(M,D)
M代表的总数位,D代表的是标度(小数位)
定点decimal 是把整数部分,小数部分,分开存储,比float精确
属性值
Primary key :主键(不能为空唯一的属性)
Auto_increment:自增属性(数值类型的)
Not null:不为null
Default:默认值
Unique:唯一约束
插入
Insert into 表名 (列名,列名…)values (值,….) 插入表中数据
2、 删
Drop database 数据库名
Drop table 表
Truncate 表名:删除表中所有的内容
Delete from 表名 where 条件:删除表中的符合条件的数据
3、 改
Rename table 旧表名 to 新表名:改表名
Update 表名 set 列=值 where 条件
修改表结构
Alter table 表名 add column 列名 数据类型
Alter table 表名 drop column 列名 :删除列
Alter table 表名 modify 列名 数据类型:修改列属性
外键
Alter table 表名 add constraint 约束名foreign key(列名) refereneces 另一张表(列名)4、查
查的基本形式:Select * from 表名 where
内链接:inner join 表名 on 条件
左连接:left join 表名 on 条件
Order by :desc(降序) asc(升序)
Group by :分组 (分组显示的列,除了分组列及函数其他不可以进行显示)
Having:是查询后的结果进行条件设置的函数(可以理解为对内存的数值进行查询)
函数:
Distinct:去重
Concatenate():字符串拼接函数
Length():字节数
Char_length(),字符数
Upper()大写转换
Lower()小写转换
Left(列名,字符数):截取从左边n个字符数
Right(列名,字符数):截取从右边n个字符数
Substring(列名,开始位置,截取的字符数)
Trim():去除左右空格
Replace(列名,替换源,替换后)
Instr(列名,字符)查询列的字符并返回在其的位置
数学函数:
绝对值abs()
向上取整ceil()
向下取整floor()
取模mod(x,y)
随机函数:rand()
四舍五入函数round()
数值截取函数 truncate(x,y)
日期函数
Now():当前时间
Curdate():当前日期
从日期中选择出月份数:month(date)
从日期中选择出周数:week(date)
从日期中选择出年数:year(date)
从时间中选择出分钟数:minute(time)
从时间中选择出小时数:hour(time)
从时间中选择出周几:weekday(date)
Ifnull(a,b)如果是null返回a,否则返回b
If(条件,a,b)如果条件成立返回a,否则返回b
查询总结:
当需要查询时,可以将查询的问题进行拆解成几段可以完成的查询语句,之后进行拼接
搜索引擎
Myisam :不支持事务,表锁
Innodb:支持事务:行锁