MySQL
常见数据类型
整型
- TINYINT
- SMALLINT
- MEDIUMINT
- INT
- BIGINT
浮点型
- FLOAT(n,m)
- DOUBLE(n,m)
- DECIMAL(n,m)
n:整数部位+小数部位的最大长度
m:小数部位的最大长度
字符型
- CHAR(n)
- n为字符的最大个数,可选,默认是1,固定长度的字符。
- VARCHAR(n)
- n为字符的最大个数,必写,可变长度的字符。
- TEXT
- 保存大文本
日期型
- DATETIME
- 只有日期
- 2021-08-29
- DATE
- 只有时间
- 18:28:53
- TIME
- 日期+时间,占8个字节,
- 日期范围1900-1-1~9999-12-31
- 不受时区和服务器版本的影响
- 2021-08-29 18:28:54
- TIMESTAMP
- 时间戳,日期+时间,占4个字节
- 日期范围1970-1-1~2038-12-31
- 受时区和服务器版本的影响
- 2021-08-29 18:28:56
查用sql操作
查询常量
- SELECT ‘110’; – > 110
- SELECT ‘2099-12-31 23:59:59’; – > 2099-12-31 23:59:59
- SELECT ‘Hello Mysql: 你好 Mysql’; – > Hello Mysql: 你好 Mysql
- SELECT 10+100; – > 110
- SELECT 20+‘200’; – > 220
- SELECT 10+‘hello’; – > 10 字符无法转换为数值,则转换为0,等于10+0 = 10
- SELECT CONCAT(‘10’,‘hello’); – > 10hello
- SELECT 999+“123”+NULL; – > NULL 只要有NULL 一定是NULL
查询相关信息sql
- SELECT VERSION(); – > 获取当前MySql数据库的版本信息
- SHOW DATABASES; – > 获取当前MySql实例下所有数据库
- SELECT VERSION(); – > 获取当前MySql数据库的版本信息
- SHOW VARIABLES LIKE ‘%char%’ – >获取字符集相关的信息
- SHOW CREATE DATABASE dbname – > 获取建库语句,可以查看当前库的使用的编码字符集
- SHOW CREATE TABLE table_name ; – > 获取建表语句
- SHOW VARIABLES LIKE ‘%lower_case_table_names%’
- 0 大小写敏感
- 1 大小写不敏感
- 2 依据创建时的格式而定
- SELECT @@sql_mode; – > 是否严格语法模式,如果值为空则为非严格模式
事务相关sql
- SHOW VARIABLES LIKE ‘autocommit’; – >查看事务是否自动提交
- SET autocommit = 0; – > 将自动提交关闭
- SET autocommit = 1; – > 将自动提交打开
- begin; – >开启事务
– sql –
commit; – > 关闭- START TRANSACTION; – >开启事务
– sql–
commit; – > 关闭- ROLLBACK; – > 回滚
常用sql
SELECT - 从数据库中提取数据
- SELECT * FROM table_name;
- SELECT column_name,column_name FROM table_name;
UPDATE - 更新数据库中的数据
- UPDATE table_name SET column1=value1,column2=value2,… WHERE some_column=some_value;
DELETE - 从数据库中删除数据
- DELETE FROM table_name WHERE some_column=some_value;
INSERT INTO - 向数据库中插入新数据
- INSERT INTO table_name (column1,column2,column3,…) VALUES (value1,value2,value3,…);
CREATE DATABASE - 创建新数据库
- CREATE DATABASE dbname;
- CREATE DATABASE IF NOT EXISTS dbname CHARACTER SET 字符集;
ALTER DATABASE - 修改数据库
- ALTER DATABASE dbnameDEFAULT CHARACTER SET 字符集;
DROP DATABASE 删除数据库
- DROP DATABASE dbname
CREATE TABLE - 创建新表
CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
…
);CREATE TABLE table_name
(
column_name1 data_type(size) AUTO_INCREMENT, – 自增
column_name2 data_type(size),
column_name3 data_type(size),PRIMARY KEY (column_name1 ),
…
);ALTER TABLE - 变更(改变)数据库表
- ALTER TABLE table_name ADD column_name datatype
- ALTER TABLE table_name DROP COLUMN column_name
修改表字符编码为utf8mb4
- ALTER TABLE table_name CONVERT TO CHARACTER SET ‘utf8mb4’;
DROP TABLE - 删除表
- DELETE FROM table_name WHERE some_column=some_value;
CREATE INDEX - 创建索引(搜索键)
- CREATE INDEX index_name ON table_name (column_name)
DROP INDEX - 删除索引
- DROP INDEX index_name ON table_name
SHOW DATABASE 查看所有数据库
- SHOW DATABASES ;
USE DATABASE 使用指定数据库
- USE dbname;
SHOW TABLE 展示当前库下所有表
- SHOW TABLES;
DESC TABLE 展示表结构
- DESC table_name
修改表名
- ALTER TABLE old_table_nameRENAME TO new_table_name ;
修改列名
- ALTER TABLE table_name CHANGE COLUMN old_column_name new_column_name type;
修改列的类型
- ALTER TABLE table_name MODIFY COLUMN column_name type;
添加默认
- ALTER TABLE table_name MODIFY COLUMN column_name type DEFAULT ‘defaultValue’;
添加主键
ALTER TABLE table_name MODIFY COLUMN column_name type PRIMARY KEY;
ALTER TABLE table_name ADD PRIMARY KEY(column_name)
添加唯一
- ALTER TABLE table_name ADD UNIQUE(column_name)
添加非空
- ALTER TABLE table_name MODIFY COLUMN column_name type NOT NULL;
删除唯一
- ALTER TABLE table_name DROP INDEX column_name;
删除非空
- ALTER TABLE table_name MODIFY COLUMN column_name type ;
添加新列
- ALTER TABLE table_name ADD COLUMN column_name type;
删除列
ALTER TABLE table_name DROP COLUMN column_name type;
复制表的结构
- CREATE TABLE new_table_name LIKE old_table_name ;
复制表的结构与数据
- CREATE TABLE new_table_name SELECT * FROM old_table_name ;
只复制某几个列,不包含数据
- CREATE TABLE new_table_name SELECT column_name1 ,column_name2 FROM old_table_name WHERE 1=2;
只复制某几个列,包含数据
- CREATE TABLE new_table_name SELECT column_name1 ,column_name2 FROM old_table_name;
永久修改默认的编码字符集 – LINUX
vim /etc/my.cnf
#添加如下配置
[client]
default-character-set=utf8
[mysqld]
character_set_server=utf8
collation-server=utf8_general_ci
[mysql]
default-character-set=utf8
重新启动MySQL服务!!!
重启命令如下
service mysqld restart
SQL分类
- DDL(Data Definition Language)数据定义语言
- DML(Data Manipulation Language)数据操作语言
- DQL(Data Query Language)数据查询语言
- DCL(Data Control Language)数据控制语言(了解)