Mysql 基础语法

Mysql

一、数据库简单操作

1、创建数据库

CREATE DATABASE database_name;

可以在创建数据库的时候指定编码集

CREATE DATABASE database_name CHARACTER SET utf8;

2、删除数据库从删库到跑路

DROP DATABASE database_name; 

3、查看已创建的数据库

SHOW DATABASES;

4、查看数据库创建信息

SHOW CREATE DATABASE database_name;

5、修改数据库字符集

ALTER DATABASE database_name CHARACTER SET utf8;

6、使用数据库 (进入数据库后没有退出名令,但是可以继续用SHOW查看数据库并用USE切换到其他数据库)

USE database_name;

二、表的简单操作(使用数据库后执行的操作)

1、创建表

CREATE TABLE table_name(
	字段名称 字段数据类型  [约束],
	字段名称 字段数据类型  [约束],    
	字段名称 字段数据类型  [约束]
);

2、查看所有表

SHOW TABLES;

查看表的详细信息

DESC table_name;

查看表的创建信息

SHOW CREATE TABLE table_name;

3、增加列 (增加多列用逗号隔开)

ALTER TABLE table_name ADD 列名 类型 [完整性约束条件] [first|after 字段名];

4、修改
① 修改一列类型

ALTER TABLE table_name MODIFY 列名 类型  [完整性约束条件];

② 修改列名

ALTER TABLE table_name CHANGE 列名 新列名 类型 [约束条件];

③ 修改表名

RENAEM TABLE 表名 TO 新表名;

④ 修改表的字符集

ALTER TABLE table_name CHARACTER SET utf8;

5.删除 
① 删除一列

ALTER TABLE table_name DROP 列名;

② 删除表

DROP TABLE table_name;

三、约束条件

① 非空 :【not null】
② 唯一性:【unique】
③ 主键 :【primary key】(如果一个字段设置了非空属性和唯一性约束,那么自动识别为主键)
④ 自增 :【auto_increment】(只有主键可以设置这个约束)

四、sql数据类型

1、数值类型:
TINYINT——【1 字节】
SMALLINT——【2 字节】
MEDIUMINT——【3 字节】
INT或INTEGER——【4 字节】
BIGINT——【8 字节】
FLOAT——【4 字节、单精度】
DOUBLE——【8 字节、双精度】
2、时间类型:
DATE——YYYY-MM-DD【日期值】
TIME——HH:MM:SS【时间值或持续时间】
YEAR——YYYY【年份值】
DATETIME——YYYY-MM-DD HH:MM:SS【混合日期和时间值】
TIMESTAMP——YYYYMMDD HHMMSS【混合日期和时间值,时间戳】
3、字符串类型:
CHAR——【定长字符串】
VARCHAR——【变长字符串】
TINYBLOB——【不超过255个字符的二进制字符串】
TINYTEXT——【短文本字符串】
BLOB——【二进制形式的长文本数据】
TEXT——【长文本数据】
MEDIUMBLOB——【二进制形式的中等长度文本数据】
MEDIUMTEXT——【中等长度文本数据】
LOGNGBLOB——【二进制形式的极大文本数据】
LONGTEXT——【极大文本数据】

五、表记录操作

1、插入数据 insert

INSERT INTO  table_name (字段1,字段2,字段3) VALUES
	(1,2,3),
	(1,2,3),                                                                        
	(1,2,3);

2、修改表记录

UPDATE table_name SET 字段=1 WHERE 条件1;

3、删除表记录( 不加where子句的话会把整个表删除)

DELETE FROM table_name WHERE 条件;

删除整个表

TRUNCATE TABLE table_name;

delete和truncate的区别:

delete: 可以加限制条件,选择删除某条记录,可以返回删除的数据,在删除整个表的时候,delete的原理是一条一条的删除,如果表中有自增长的字段,delete删除之后,新的表是从上个位置开始自增的;
truncate:只能删掉整个表,truncate 的原理是把整个表删掉,再新建一个同样字段的表。
4、表记录查询 select
1:单表查询【distinct——去重、group by——分组、order by…desc|asc——降序|升序】

SELECT [DISTINCT] [查询字段|*所有] from table_name where .... group by .... order by...[desc|asc];

显示表的全部信息

SELECT * FROM table_name; 

显示指定列的信息

SELECT 字段1,字段2 FROM table_name;

用WHERE子句进行条件筛选过滤
① 比较运算符:【>、<、>=、<=、!=】
② between … and …——【在…和…之间】
③ (a,b,c)——【在a,b,c 这三个值中一个】
④ like 条件——【like “龙%” 表示已“李”开头】
like “李_”——【表示以“龙”开头,并且后面有一个字符,一个下划线代表一个字符】
⑤ 逻辑运算符——【and or not】
⑥ order by ——【表示以……排序,排序的列可以是列名,也可以是设置的别名,语句后面可以跟两个模式,asc表示升序(默认),desc表示降序】
⑦ group by——【表示…….分组,分组后只会显示每个字段的第一条记录,分组后的筛选用的关键字是having ,作用和 where一样,与where相比,having后面可以使用聚合函数】
聚合函数:
① avg()——【求平均值】
② count()——【统计个数】
③ sum()——【求和函数】
④ max(),min()——【最大值最小值函数】
⑤ limit——【关键字用来控制显示的条数,limit 1 表示只显示第一条,limit 2,5 表示显示第3到5条】
⑥ 使用正则表达式
2、多表查询
1:外键:如果两张表要创建联系,就需要使用到外键,需要考虑几种关系:一对一,多对多,和一对多
① 一对多: 这种模型中,有主表和子表的区别,比如一个老师有多个学生,一个学生只能有一个老师,这种情况老师就是主表,学生就是子表,我们需要在子表中创建关联字段(外键)
增加外键:

ADD CONSTRAINT name FOREIGN KEY (字段名)REFERENCES table_name;

删除外键:

ALTER TABLE table_name DROP FOREIGN KEY name;

② 多对多:需要借助第三张表,在第三张表中创建两个外键
③ 一对一:这种实际就是外键加一个unique,很少用
④ 一旦两张表建立了关联,就不能随便从表中删除记录了,必须解除关联后才能删
2:内连接:我们在查询表记录的时候,可以同时显示多张表的记录,类似

select * from tableA inner join tableB on tableA.id = tableB.id;

3:外连接
① 左外连接:在内连接的基础上增加左边有右边没有的结果

select * from tableA left join tableB on tableA.id = tableB.id;

② 右外连接:在内连接的基础上增加右边有左边没有的结果

select * from tableA right join tableB on tableA.id = tableB.id;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值