MySQL笔记

1 数据库

1.1 创建数据库 默认字符集 排序规则

create database 数据库名 character set 编码方式 collate 排序规则

1.2 查看创建数据库的信息

show create database数据库名;

show databases;//查看当前存在的数据库

1.3 修改数据库

alter database 数据库名 character set 编码方式 collate 排序规则;

1.4 删除数据库

drop database 数据库名;

1.5 使用数据库

use 数据库名;

2 数据表

2.1 数据类型

decimal(6,2) 数据总长度是6,小数后保留两位 示例为:1234.56

year 0000date 0000:00:00time 00:00:00datetime 0000-00-00 00:00:00

插入中文建议用varchar 可变长度的字符串

enum('男','女')

2.2 创建数据表

create [temporary] table 表名( 字段定义1, 字段定义2 )charset=utf8;

temporary为临时表

字段名 数据类型 [是否允许为空] [指定默认值] [自增字段] [唯一性约束|主键约束] [注释字段] [外键定义]

字段名 数据类型 [not null | null] [default 默认值] [auto_increment] [unique key | primary key] [comment '字符串'] [外键定义]

2.3 查看创建数据表的信息

show create table 表名;

desc 表名; //查看表结构

2.4 增删改字段

alter table 表名 change 旧字段名 新字段名 新数据类型; //修改字段名

alter table 表名 modify 字段名 新数据类型; //修改字段类型

alter table 表名 modify 字段名1 数据类型 first|after 字段名2; //修改字段的排列位置,一般用不到

alter table 表名 add 字段名 数据类型; //添加字段

alter table 表名 drop 字段名; //删除字段

alter table 表名 engine=存储引擎名; //修改表的存储引擎

2.5 复制数据表

create table 新表名 select * from 原表名; //复制表结构及数据到新表

create table 新表名 select * from 原表名 where false; //只复制表结构到新表

create table 新表名 like 原表名; //复制表结构及数据到新表

create table 新表名 as(select 字段1,字段2 from 原表名); //复制表的部分字段和数据到新表

2.5 删除数据表

drop table 表名;

2.6 约束

主键约束 如果该表只有一个需要设置主键约束 直接在新建表时就设置primary key 如果该表的主键由多个字段组合构成时 就可以在最后一行定义复合主键 primary key(字段1,字段2)

外键约束

constraint 外键名 foreign key (外键字段名) references 主表名 (主键字段名)

外键字段名 这个是在本表内定义的 所以不用写外键表名 但是主键字段名不在本表内 所以需要写主表名

on update cascade //级联更新

on delete cascade //级联删除

3 数据

3.1 插入数据

insert into 表名[(字段列表)] values (值列表);

insert into goodstye(id,leibie) values( (1,'学习用品'), (2,'洗漱用品');

3.2 修改数据

update 表名 set 字段名1=值1,字段名2=值2 [where 条件表达式];

update 表名 set upwd='888' where uname='朱小兰';

3.3 删除数据

delete from 表名 [where 条件表达式];

delete from users where uid=5;

4 数据查询

4.1 select语句

select [distinct] [* | 列名1,列名2] from 表名 [where] [group by [having]] [order by] [limit 记录数];

4.2 where

可以使用比较运算符 => <= !=

可以使用逻辑运算符 and or not and优先级高于or //where 表达式1 逻辑运算符 表达式2

可以使用between and运算符 where 表达式 between 初始值 and 终止值 where price between 100 and 500;

4.3 in

where 表达式 in (值1,值2,值N)

where city in ('长沙','北京') //查询city为长沙、北京两个城市的商品名称。

4.4 like

where 列名 like '字符串'

% 任意字符串 _任何单个字符串

“李”开头姓名 '李%' 第二个字为“湘” '_湘%'

4.5 regexp

where 列名 regexp '模式串'

^ 开始 $ 结束 . 单个字符 *匹配前面的字符0次或多次

4.6 is null

where 列名 is [not] null //查询这个列名为空的

4.7 distinct 消除重复结果集

select distinct * from 数据表名;

4.8 order by 排序输出

order by {列名 | 表达式 | 正整数} [asc | desc]

order by sale desc,price;

默认升序 desc 降序

4.9 group by子句

group by 列名1,列名2 [with rollup] [having 条件表达式]

group by和having用于对分组后的结果进行筛选

查询Users表,统计各城市的用户人数,显示人数在3人以上的城市。

select ucity,count(*) from users group by ucity havging count( *)>3

4.10 limit 返回多少行的内容

limit [offset,] 记录数

offset 表示偏移量

limit 5 //返回前5行的内容

limit 2,3 //第3行到第5行的内容

4.11 count函数

count ([列名|常量 | 表达式] | *)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值