基础知识
- net start mysql
- net stop mysql
- services.mcs 开启服务
- − − -- −− 注释要空格 , #注释可以不用空格
- varchar 和char的区别 : varchar指定20个空间,但是只是用实际的大小,char即使数据只有2个空间也会使用20空间
name
波浪线- 自动增长不需要维护
- timestamp也不需要维护
- <> 不等于,不建议使用!=
- null值不能使用运算符,要用is判断
- %表示任一字符
- _占位符
数据类型
-
int:整数类型
* age int, -
double:小数类型
* score double(5,2) -
date:日期,只包含年月日,yyyy-MM-dd
-
datetime:日期,包含年月日时分秒 yyyy-MM-dd HH:mm:ss
-
timestamp:时间错类型 包含年月日时分秒 yyyy-MM-dd HH:mm:ss
* 如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值 -
varchar:字符串
* name varchar(20):姓名最大20个字符
* zhangsan 8个字符 张三 2个字符
数据库的操作
操作 | SQL语句实现 |
---|---|
新建 | Create database if not exists 库名 |
删除 | drop database if exists 库名 |
查看所有的数据库 | show databases; |
查看指定的数据库 | show create database 库名 |
查看使用的数据库 | select database(); |
使用数据库 | use 库名 |
修改字符集 | alter database 库名 character set gbk; |
表的操作
操作 | SQL语句的实现 |
---|---|
新建 | create table 表名(列名1 数据类型1,… 列名n 数据类型n) |
查看表 | desc(description)表名 |
修改表名 | rename table 表名 to 新表名 |
修改表的类型 | alter table 表名 modify 列名 类型 |
删除表 | drop table if exists 表名 |
复制 | create table 新表名 like 被复制的表名 |
修改表名 | alter table 表名 rename to 新的表名 |
修改字符集 | alter table 表名 charater set gbk |
新增列 | alter table 表名 add 列名 数据类型 |
修改列的名称 | alter table 表名 change 列名 新类名 数据类型 |
删除列 | alter table 表名 drop 列名 |
表中的数据
- 数字类型,其他类型需要使用引号(单双都可以)引起来
操作 | SQL语句的实现 |
---|---|
添加数据 | insert into 表名(列名1,…列名n)values (值1,…值n) |
删除数据 | delete from 表名 where 条件 |
修改数据 | update 表名 set 列名1=值1,列名2=值2…where 条件 |
- delete from 表名 where 条件 ,如果不添加条件,则删除所有的数据
- turncate table 表名 ;直接删除表,然后再创建一张新表
表中数据的查询
- select * from 表名;查询表中所有的数据
语法:
-
语法
select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
分组之后的条件
order by
排序
limit
分页限定
基础查询
- 多个字段的查询
select 字段名1,字段名2… from 表名; - 去除重复:
* distinct - 计算列
* 一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)
* ifnull(表达式1,表达式2):null参与的运算,计算结果都为null
* 表达式1:哪个字段需要判断是否为null
* 如果该字段为null后的替换值。 - 起别名:
* as:as也可以省略
条件查询
- where子句后跟条件
- 运算符
* > 、< 、<= 、>= 、= 、<>
* BETWEEN…AND
* IN( 集合)
* LIKE:模糊查询
* 占位符:
* _:单个任意字符
* %:多个任意字符
* IS NULL
* and 或 &&
* or 或 ||
* not 或 ! - like 模糊查询
- _ 是占位符
- % 代表任意个任意字符