MySQL基本语句――增、删、查、改
2015-08-20 18:52
696 查看
1.数据库的创建、修改、删除
创建:
删除:
创建:表的创建有三种方式
直接定义一张空表
ADD:添加字段、索引、约束。
CHANGE | MODIFY:修改字段定义,change可以修改字段名称,而modify不行。
DROP:删除字段、索引、约束。
RENAME [TO|AS]:重命名表名。
CONVERT TO CHARACTER SET:修改默认字符集。
删除:
创建:
ASC:升序排序。
DESC:降序排序。
删除:
简单查询:投影、选择
WHERE子句:
布尔关系表达式:=、<、>、>=、<=。
逻辑关系:AND、OR、NOT。
BETWEEN ... AND...:在谁和谁之间。
LIKE:
%: 任意长度任意字符
_:任意单个字符
REGEXP, RLIKE:和LIKE相似,支持正则表达式。
IN:做离散取值,表示在某个列表当中。
IS [NOT] NULL:是否为空。
ORDER BY field_name [ASC|DESC]:将查询后的结果排序。
字段别名:AS
LIMIT子句:LIMIT [offset,]count
offset:表示偏移量,略过前offset条符合条件的结果。
count:显示前count条符合条件的结果。
聚合:SUM(), MIN(), MAX(), AVG(), COUNT()。
GROUP BY: 分组
HAVING qualification:在分组中过滤条件。
多表查询:
连接:
交叉连接:笛卡尔乘积。
自然连接:具有相同名字的属性上所有取值相同的行。
外连接:以左表或右表为准,如果另一张表中没有对应值则显示NULL.
左外连接:tb_name LEFT JOIN tb_name ON condition
右外连接: tb_name RIGHT JOIN tb_name ON condition
自连接:将同一张表中的查询结果连接在一起。
子查询:
比较操作中使用子查询:子查询只能返回单个值。
IN():在IN中使用子查询。
在FROM中使用子查询。
5.插入操作
6.删除操作
创建:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification];例如:
CREATE DATABASE IF NOT EXISTS test CHARACTER SET 'gbk' COLLATE 'gbk_chinese_ci';修改:
ALTER {DATABASE | SCHEMA} [db_name] alter_specification;通常只能修改数据库字符集及排序规则。
删除:
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name;2.表的创建、修改、删除
创建:表的创建有三种方式
直接定义一张空表
CREATE TABLE [IF NOT EXISTS] tb_name (字段名称 字段定义,...) [table_options];从其它表中查询出数据,并以之创建新表:字段的格式定义将不会存在
CREATE TABLE [IF NOT EXISTS] tb_name [(字段名称 字段定义,...)] [table_options] select_statement;以其它表为模板创建一个空表
CREATE TABLE [IF NOT EXISTS] tb_name LIKE old_tb_name;修改:
ALTER TABLE tbl_name [alter_specification [, alter_specification] ...];alter_specification:
ADD:添加字段、索引、约束。
CHANGE | MODIFY:修改字段定义,change可以修改字段名称,而modify不行。
DROP:删除字段、索引、约束。
RENAME [TO|AS]:重命名表名。
CONVERT TO CHARACTER SET:修改默认字符集。
删除:
DROP TABLE [IF EXISTS] tbl_name3.索引的创建、删除
创建:
CREATE INDEX index_name ON tb_name (col_name [(length)] [ASC | DESC],...);length:索引的长度,表示从最左侧起比较多长的字符。
ASC:升序排序。
DESC:降序排序。
删除:
DROP INDEX index_name ON tbl_name;4.查询操作
简单查询:投影、选择
SELECT select-list FROM tb WHERE qualification;FROM子句:要查询的关系。
WHERE子句:
布尔关系表达式:=、<、>、>=、<=。
逻辑关系:AND、OR、NOT。
BETWEEN ... AND...:在谁和谁之间。
LIKE:
%: 任意长度任意字符
_:任意单个字符
REGEXP, RLIKE:和LIKE相似,支持正则表达式。
IN:做离散取值,表示在某个列表当中。
IS [NOT] NULL:是否为空。
ORDER BY field_name [ASC|DESC]:将查询后的结果排序。
字段别名:AS
LIMIT子句:LIMIT [offset,]count
offset:表示偏移量,略过前offset条符合条件的结果。
count:显示前count条符合条件的结果。
聚合:SUM(), MIN(), MAX(), AVG(), COUNT()。
GROUP BY: 分组
HAVING qualification:在分组中过滤条件。
多表查询:
连接:
交叉连接:笛卡尔乘积。
自然连接:具有相同名字的属性上所有取值相同的行。
外连接:以左表或右表为准,如果另一张表中没有对应值则显示NULL.
左外连接:tb_name LEFT JOIN tb_name ON condition
右外连接: tb_name RIGHT JOIN tb_name ON condition
自连接:将同一张表中的查询结果连接在一起。
子查询:
比较操作中使用子查询:子查询只能返回单个值。
IN():在IN中使用子查询。
在FROM中使用子查询。
5.插入操作
INSERT INTO tb_name (col1, col2, ...) VALUES (val1, val2, ...)[,(val1, val2, ...); INSERT INTO tb_name SET col1=expr,col2=expr,...; INSERT INTO tb_name (col1, col2, ...) SELECT ...;注:第三种表示将select语句的查询结果插入到表中,二、三中不能批量插入。
6.删除操作
DELETE FROM tb_name WHERE condition;7.更新操作
UPDATE tb_name SET col1=..., col2=... WHERE condition;
相关文章推荐
- MySQL赋权
- MySQL学习笔记-事务相关话题
- MySQL定时器Events
- MySql即使所有地方的编码格式都为utf-8时,为何还是不能正常输入和在cmd下显示
- mac mysql
- SQL Server 迁移数据到MySQL
- mysql 获取当前日期及格式化
- MySQL清空表数据并重置Auto_increment字段起始值为1
- mysql max_allowed_packet过小引起的问题
- MySQL主从复制
- MySQL存储引擎MyISAM与InnoDB的优劣
- 整理MySql常用查询语句(23种)
- 使用PowerDesigner创建mysql数据库表
- Mysql允许用户远程连接
- 使用MySQL Connector/C(libmysqlclient) 连接MySQL服务器
- mysql 命令
- ubuntu上安装mysql
- Windows下mysql密码忘记,如何重置root密码
- MySQL当您插入列无效的数据插入
- mysql的mysqldump用法,重置数据库