mysql 语句
查询语句执行顺序:
- FROM -> WHERE -> GROUP BY -> HAVING -> ORDER BY
WHERE 在分组前进行过滤, HAVING在分组后进行过滤 |
修改分隔符
DELIMITER ;; # 语句以;;结束 |
数据库
创建数据库
db_nameCREATE DATABASE db_name;
CREATE DATABASE IF NOT EXISTS db_name;
CREATE DATABASE db_name CHARACTER SET utf8;
mysql > CREATE DATABASE IF NOT EXISTS test;显示warning 信息
mysql > SHOW WARNINGS;
查看数据库
mysql > show databases;
//显示所有数据库
mysql > show create database db_name;
//显示数据库创建信息修改数据库
使用alter命令来调整数据库字符mysql > alter database db_name DEFAULT CHARACTER SET utf8;
//修改字符集为utf8删除数据库
DROP database db_name;
mysql > DROP DATABASE db_name;
数据表
创建数据表
create table tbname(
列表名1 数据类型 [约束条件] [默认值]
列表名2 数据类型 [约束条件] [默认值]
列表名3 数据类型 [约束条件] [默认值]
···
)表的约束条件
mysql > CREATE TABLE sms(
->id INT(11),
->name VARCHAR(128),
->age INT(11),
->PRIMARY KEY(id),
->FOREIGN KEY(name) REFERENCES table(name)
->)ENGINE=InnoDB DEFAULT CHARSET = utf8;约束
-主键约束 (PRIMARY KEY)
-外键约束CONSTRAINT (外键名)FOREING KEY (列名1,···)REFERENCES(父表名)(主键列名1,···)
mysql > constraint p_c_id foreign key(c_id) references country(id);-非空约束(NOT NULL)
-唯一约束 (UNIQUE)
-默认
自增属性(AUTO_INCREMENT)
外键
定义外键
CONSTRAINT constraint_name |
CONSTRAINT
:外键约束定义名称,如果省略,MySQL将自动生成一个名称。
添加外键
ALTER table_name |
删除外键
ALTER TABLE table_name |
查看user表结构
mysql > show create table user\G
********************************1.row******************************
Table:user
Create Table:CREATE TABLE 'user'(
'id' int(11) DEFAULT NULL,
'name' varchar(128) DEFAULT NULL,
'age' int(11) DEFAULT NULL
)ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set(0.00sec)
也可以用desc 查看
mysql > desc 表名;修改数据表
添加、删除主键
ALTER TABLE name ADD PRIMARY KEY(id); |
修改表名
ALTER TABLE 原表名 RENAME [T0] 新表名 |
修改表的字段类型
ALTER TABLE 表名 MODIFY 列名 数据类型; |
修改表的字段名字
ALTER TABLE 表名 CHANGE 原列名 新列名 数据类型 |
添加字段
ALTER TABLE 表名 ADD 新列表 数据类型 [约束条件] [FIRST|AFTER 字段名]; |
删除字段
ALTER TABLE 表名 DROP 列名; |
调整表字段的位置
ALTER TABLE 表名 MODIFY 列名 数据类型 FIRST|AFTER 字段名; |
删除数据表
DROP TABLE [IF EXISTS] 表1,表2,···表n; |
数据表语句
新增数据
INSERT INTO table_name(field1,field2···fieldN)
VALUES
(value1,value2···valueN);
mysql > create table user(id int primary key auto_increment,name barchar(100),age int,phone_num varchar(20));
|
修改数据
UPDATE table_name SET field1=new-value1,field2=new-value2
[WHERE Clause]
mysql > update user set age=22 where id=1;
//将用户id为1的年龄更新为22;删除数据
DELETE FROM table_name [WHERE Clause]
mysql > delete from user where age >25;replace 操作
REPLACE [INTO] tal_name [(col_name,···)]
{VALUES|VALUE}({expr|DEFAULT},···),(···),···
mysql > replace into user (id,name,age,phone_num)values(1,'xiaoli',21,15236547896),(1,'qiansan',18,15212345678);
复制表
完整复制
mysql > CREATE TABLE newtable LIKE table;
mysql > INSERT INTO newtable SELECT * FROM table;手动复制
mysql > SHOW CREATE TABLE table \G;
mysql > CREATE TABEL newtable(
···
);
mysql > INSERT INTO ···SELECT ···
//查看内容,创建新表,插入数据
导入导出数据
导入数据
1.mysql 命令导入mysql -u用户名 -p123456(passwards) < 要导入的数据库数据
# mysql -uroot -p123456 < sqlname.sql2.source 命令导入
mysql > CREATE DATABASE adc;
mysql > USE adc;
mysql > SET NAMES UTF8;
mysql > SOURCE /home/adc/adc.sql;导出数据
使用SELECT ··· INTO OUTFILE 语句导出mysql > SELECT * FROM tb_name
-> INTO OUTFILE '/home/tb_name.tSELxt';
设置用户
创建用户 |
- 本文作者: Naskete
- 本文链接: https://Naskete.github.io/2022/04/11/essay/mysql_sql/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!