mysql基础 - #2
这是 DataWhale 新闻推荐系统实战的 Task2,主要任务有:
- mysql 基础
- MongoDB 基础
- redis 基础
本篇博客主要是关于 mysql 基础,Fun-rec的文档在这里。
当前为mysql基础第二篇,前期内容:
1. 数据库的操作
创建数据库
- 语法:
CREATE DATABASE [IF NOT EXISTS] <数据库名称> [[default] character set <字符集>] [[default] collate <校对规则> ];
- MySQL 的字符集(CHARACTER)和校对规则(COLLATION)是两个不同的概念。字符集是用来定义 MySQL 存储字符串的方式,校对规则定义了比较字符串的方式
修改数据库
- 修改属性
- 语法:
alter database <数据库名>
default character set <字符集>
default collate <校对规则>;
- 删除
- 语法:
drop database [IF EXISTS] <数据库名>;
查看数据库
- 查看有哪些数据库,语法:
show databases;
- 查看某个数据库的定义声明,语法:
show create database <数据库名>;
- 查看某些数据库:
show databases like '数据库名匹配串';
2. 数据表的操作
创建数据表
- 语法:
CREATE TABLE <表名> (<字段1> <数据类型> <该列所需约束>,
<字段2> <数据类型> <该列所需约束>,
<字段3> <数据类型> <该列所需约束>,
<字段4> <数据类型> <该列所需约束>,
.
.
.
<该表的约束1>, <该表的约束2>,……);
删除数据表
- 语法:
DROP TABLE <表名>;
查看表结构
- 查看表的字段信息,语法:
desc 表名;
或describe 表名;
- 以sql语句的形式展示表结构,语法:
show create table 表名;
复制表
- 复制表结构和内容
- 语法:
create table 新表名
select * from 已有的表;
- 仅复制表结构
- 语法
create table 新表名 like 已有的表;
修改表结构
通过 alter table_name [修改选项]
来完成,其中 修改选项
的语法格式为:
{ ADD COLUMN <列名> <类型>
| CHANGE COLUMN <旧列名> <新列名> <新列类型>
| ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT }
| MODIFY COLUMN <列名> <类型>
| DROP COLUMN <列名>
| RENAME TO <新表名>
| CHARACTER SET <字符集名>
| COLLATE <校对规则名> }
- 更改表名
- 语法:
ALTER TABLE <原表名> RENAME <新表名>;
- 例子:
alter table xoxo rename xxoo;
- 增加字段
- 语法:
alter table 表名 add 列名 数据类型;
- 例子:
alter table news add content text;
- 增加字段时,还可以指定增加的位置;
- 删除字段
- 语法:
alter table 表名 drop 列名;
- 例子:
alter table news drop content;
- 重命名字段
- 语法:
alter table 表名 change 旧列名 新列名 新数据类型;
- 例子:
alter table news change content body text;
查看数据库中的表
- 语法:
show tables;
3. 表中数据
操纵表中数据主要分为:增(insert)、删(delete)、改(update)、查(select)。其中最复杂的莫过于查了,这是最常使用的也是最难掌握的。本篇博客中只列出它们的语法,不展开讲解。
select
语法:
SELECT
{* | <字段列名>}
[
FROM <表 1>, <表 2>…
[WHERE <表达式>
[GROUP BY <group by definition>
[HAVING <expression> [{<operator> <expression>}…]]
[ORDER BY <order by definition>]
[LIMIT[<offset>,] <row count>]
]
update
语法:
UPDATE <表名> SET 字段 1=值 1 [,字段 2=值 2… ] [WHERE 子句 ]
[ORDER BY 子句] [LIMIT 子句]
insert
语法:
INSERT INTO <表名> [ (<列名1> [ , … <列名n>] )]
VALUES (值1) [… , (值n) ];
delete
语法:
DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子句]