数据库的创建
1》使用Navicat工具进行创建
2》使用SQL语句进行创建
创建数据库:
CREATE DATABASE IF NOT EXISTS 数据库名字
DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
表的创建
1》使用Navicat工具进行创建
2》使用SQL语句进行创建
创建表:
CREATE TABLE IF NOT EXISTS `user` ( `user_id` INT UNSIGNED AUTO_INCREMENT, `user_name` VARCHAR(100) NOT NULL, `birthday` DATE, PRIMARY KEY ( `user_id` ) )ENGINE=InnoDB DEFAULT CHARSET=utf8;
SQL语句创建表的语法:
CREATE TABLE IF NOT EXISTS `user` 创建表,表的名字为user, 如果它不存在的话就创建,否则不创建
( `user_id` INT UNSIGNED AUTO_INCREMENT, 字段名叫user_id 整数类型 无符号的 自增的
`user_name` VARCHAR(100) NOT NULL, 字段名叫user_name 最大能存储100个字符的字符串 不可以为空
`birthday` DATE, 字段名叫birthday 日期类型
PRIMARY KEY ( `user_id` ) 唯一主键是user_id
)ENGINE=InnoDB DEFAULT CHARSET=utf8; 存储引擎为InnoDB 默认字符编码是utf8
MySQL基本操作
1、数据写入
1》借助Navicat工具直接插入数据
2》通过SQL语句插入数据
新增一行数据
INSERT INTO 表名 ( 字段名1,字段名2,...字段名N )
VALUES ( 值1,值1,...值N );
一次新增多行数据
INSERT INTO 表名 ( 字段名1,字段名2,...字段名N )
VALUES ( 值1,值1,...值N ), ( 值1,值1,...值N ), ( 值1,值1,...值N );
2、数据更新
1》借助Navicat工具更新数据
2》通过SQL语句更新数据
更新表中全部数据
UPDATE 表名 SET 列1=新值1,列2=新值2
按条件更新数据
UPDATE 表名 SET 列1=新值1,列2=新值2 WHERE 过滤条件
3、数据删除
删除表中全部数据
delete from 表名
按条件删除表中部分数据
delete from 表名 where 字段名=字段值;
清空表中数据
truncate table 表名;
删除表
drop table [if exists] 表名;
4、数据基本查询
查询表中全部字段
select * from 表名
查询表中指定的字段
select 字段1,字段2,…… from 表名
5、条件查询
单条件查询
select * from 表名 where 字段名=字段值
模糊条件查询
前模糊
select * from 表名 where 字段名 like “%关键字”
后模糊
select * from 表名 where 字段名 like “关键字%”
前后都模糊
select * from 表名 where 字段名 like “%关键字%”
中间模糊
select * from 表名 where 字段名 like “关键字%关键字”
哪里想模糊就哪里模糊
select * from 表名 where 字段名 like “关键字%关键字%关键字”
查询出姓李,并且名字只有两个字的同学
select * from 表名 where 字段名 like “李_”
查询出姓李,并且名字只有三个字的同学
select * from 表名 where 字段名 like “李__”
注意:_是一个下划线,__是两个下划线,李后边 是两个下划线
6、数据筛选查询
大于
select * from 表名 where 列名 >数字
小于
select * from 表名 where 列名 <数字
大于等于
select * from 表名 where 列名 >=数字
小于等于
select * from 表名 where 列名 <=数字
不等于
select * from 表名 where列名 != 数字
空字符串""
select * from 表名where 列名 != ""
null
select * from 表名 where 列名 is null
不为null
select * from 表名 where列名 is not null
返回指定条数 limit
select * from 表名 where列名 >数字 limit 数量1,数量 2 (数量1:从几开始,数量2:跳过数量1展示数量2)
select * from 表名 limit 数量1,数量2
select * from 表名 limit 数量
包含in
select * from表名 where 列名 in (列名下面的,列名下面的)
不包含 not in
select * from 表名where 列名 not in (列名下面的,列名下面的)
两者之间between and
select * from 表名 where 列名 BETWEEN 列名下面的 and 列名下面的
与 and
select * from 表名 where列名 >=列名下面的and score <=列名下面的
或 or
select * from 表名 where 列名 = 列名下面的or score = 列名下面的 or score = 列名下面的
7、MySQL高级查询
左关联查询
select*from 表名1
left join 表名2
on 表名1.相同参数=表名2.相同参数
右关联查询
select*from 表名1
right join 表名2
on 表名1.相同参数=表名2.相同参数
全关联查询
select*from 表名1
join 表名2
on 表名1.相同参数=表名2.相同参数