mySQL基本语句
来源:互联网 发布:sql 去掉重复行 编辑:程序博客网 时间:2024/06/14 19:25
DDL(Data Defination Languages)
创建数据库,
CREATE DATABASE 数据库名;查看数据库
show databases;删除数据库
drop database 数据库名创建表
CREATE TABLE 表名字 (column_name column_type constraints ...... column_name column_type constraints);column_name 字段名,column_type字段类型,constraints约束条件(索引类型)
查看表定义
desc 表名称;查看表创建语句
show create table 表名称 \G;\G选项能够使记录按照字段竖着排列
删除表
drop table 表名称;修改表字段
ALTER TABLE 表名称 MODIFT [COLUMN] column_definition [FIRST | AFTER col_name];column字段名,column_definition字段类型,FIRST|AFTER col_name移动字段到表开头或者某个字段后面
增加表字段
ALTER TABLE 表名称 ADD [COLUMN] column_definition [FIRST|AFTER col_name];删除表字段
ALERT TABLE 表名称 DROP [CLOUMN] col_name;字段改名
ALTER TABLE 表名称 CHANGE[CLOUMN] old_dol_name column_definition [FIRST|AFTER col_name]表改名
ALTER TABLE 表名称 RENAME [TO] 新表名
DML语句(Data Manipulation Language)
插入记录
INSERT INTO 表名 (field1,field2,...) VALUES (value1, value2,...);也可以不指定字段名称,但要按照字段排列顺序,
INSERT INTO 表名称 (value1, value2,...);一次性插入多条记录
INSERT INTO 表名称 (field1, field2, ...) VALUES (values1, values2,...), (values1, values2,...)更新记录
UPDATE 表名称 SET field1=value1, field2=value2,..., fieldn=valuen;同时更新多个表数据
UPDATE t1,t2...tn SET t1.field1=expr1, ...,tn.fieldn=exprn [WHERE CONDITIONS];删除记录
DELETE FROM 表名称 [WHERE CONDITION]删除多个表(注意表别名的使用)
DELETE t1,t2...,tn FROM t1,t2..,tn [WHERE CONDITION];查询记录
SELECT * FROM 表名称 [WHERE CONDITION];查询不重复语句
SELECT DISTINCT 字段名 FROM 表名;排序和限制
SELECT * FROM 表名 [WHERE CONDITION] ORDER BY field1 [DESC|ASC],...,fieldn [DESC|ASC] LIMIT offset_start,row_count;ASC升序,DESC降序默认是ASC,LIMIT的用法像php中的substr()函数,两个参数分别是起始值和长度。
聚合
SELECT [field1, field2,...,fieldn] fun_name FROM 表名称 [WHERE CONDITION] [GROUP BY field1,field2,...,fieldn
[WITH ROLLUP]]
[HAVING WHERE_CONDITION]fun_name: 函数 sum(),count(),max(),min()
GROUP BY:分类聚合字段
WITH ROLLUP:可选,是否对分类后结果再汇总
HAVING:对分类后结果进行条件过滤
例如,统计字段1数量大于1的行数据:
SELECT 字段1,count(1) from 表名 group by 字段名 having count(1)>1;表连接
最常用的是内连接
SELECT 字段1 FROM 表1,表2 WHERE 表1.字段1=表2.字段1;外连接,左连接:包含所有左边表的记录甚至右表没有和它匹配的记录,
SELECT 字段1 FROM 表左 LEFT JOIN 右表 ON 左表.字段1=右表.字段1;右连接:包含所有右边表的记录甚至左表没有和它匹配的记录,SELECT 字段1 FROM 表左 RIGHT JOIN 右表 ON 左表.字段1=右表.字段1;子查询,主要关键字: in, not in,=,!=,exists,not exists,mySql 4.1之前不支持子查询,只能用表连接实现相应功能。
记录联合SELECT * FROM t1 UNION|UNION ALL SELECT * FROM t2... UNION|UNION ALL SELECT * FROM tn;UNION和UNION ALL的主要区别是UNION ALL把结果集直接拼在一起,而UNION对UNION ALL后的结果进行一次DISTINCT,去除重复记录后结果。DCL(Data Control Language)
DCL语句一般是DBA用来管理系统中对象权限使用赋予权限grant select,insert on 数据库名.* to '用户名'@ip地址 identified by '密码';
阅读全文
0 0
- mysql基本语句
- mysql基本语句
- mysql基本sql语句
- mysql操作基本语句
- MySQL基本SQL语句
- MYSQL 基本语句
- mysql基本语句
- mysql基本语句
- mysql基本语句大全
- Mysql基本语句练习
- mysql 基本语句
- MySQL的基本语句
- mysql基本语句
- MySQL基本SQL语句
- mysql基本语句1
- MySQL基本语句总结
- MySQL 基本操作语句
- MySQL基本语句
- 深入理解虚继承
- Mybatis 逆向工程 数据库生成mapper
- 第一次LR发帖
- 【神经网络入门】用JAVA实现感知器算法
- maven项目中pom文件报错xx\target\classes\META-INF\MANIFEST.MF (系统找不到指定的路径)的解决
- mySQL基本语句
- NOI2014 魔法森林 LCT维护MST
- FZU 2238 Daxia & Wzc's problem【规律+lucas】
- js获取图片宽高的方法
- 全网稀缺Vue 2.0高级实战 独立开发专属音乐WebAPP
- 【未写完】微信小程序做的步骤
- 序时簿、编辑页 增加合计行
- linux 后台运行jar
- 算法系列(12)LeetCode292 Nim Game