mysql学习总结
来源:互联网 发布:电脑怎样编程软件 编辑:程序博客网 时间:2024/06/07 06:40
mysql学习总结
SQL语言的组成部分
- DDL(Data Defination Language):数据定义语言,主要用于定义数据库、表、视图、索引和触发器等。像DROP、CREATE、ALTER等语句
- DML(Data Manipulation Language):主要包括对数据的增删改。INSERT插入数据、UPDATE更新数据、DELETE删除数据。
- DQL(Data Query Language):数据检索语句,用来从表中获得数据,确定数据怎样在应用程序中给出。像SELECT查询数据。
- DCL(Data Control Language):数据控制语言,主要用于控制用户的访问权限。像GRANT、REVOKE、COMMIT、ROLLBACK等语句。
安装目录简介(win)
- bin目录,存储可执行文件
- data目录,存储数据文件
- include目录,存储包含的头文件
- lib目录,存储库文件
- docs目录,文档
- share目录,错误消息和字符集文件
- my.ini文件,MySQL的配置文件
登陆/退出MySQL
登陆常用参数
- -u 用户名
- -p 密码
- -h 服务器名称
- -P 端口号
- -D 打开指定数据库
- –prompt=name,设置命令提示符
- –delimiter=name,指定分隔符
- -V,–version,输出版本信息并且退出
修改MySQL命令提示符
- \D:完整的日期
- \d:当前数据库
- \h:服务器名称
- \u:当前用户名
数据库操作(DDL)
创建数据库
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [[DEFAULT] CHARACTER SET [=] charset_name]
查看当前服务器下的数据库列表
SHOW {DATABASES|SCHEMAS}
查看指定数据库的定义
SHOW CREATE {DATABASE|SCHEMA} db_name
修改指定数据库的编码方式
ALTER {DATABASE|SCHEMA} db_name [DEFAULT] CHARACTER SET [=] charset_name
打开指定数据库
USE db_name
删除指定数据库
DROP {DATABASE|SCHEMA} [IF EXISTS] db_name
数据表相关操作
创建数据表
CREATE TABLE [IF NOT EXISTS] tbl_name(字段名称 字段类型 [完整性约束条件]...)ENGINE=引擎名称 CHARSET='编码方式';
完整性约束条件
PRIMARY KEY主键AUTO_INCREMENT自增长FOREIGN KEY外键NOT NULL非空UNIQUE KEY唯一DEFAULT默认值
查看数据库下的数据表
SHOW TABLES
查看指定表的表结构
DESC tbl_nameDESCRIBE tbl_nameSHOW COLUMNS FROM tbl_name
修改表名
ALTER TABLE tbl_name RENAME [TO|AS] new_nameRENAME TABLE tbl_name TO new_name
添加字段
ALTER TABLE tbl_name ADD 字段名称 字段类型 [完整性约束条件] [FIRST|AFTER 字段名称]
删除字段
ALTER TABLE tbl_name DROP 字段名称
修改字段
ALTER TABLE tbl_name MODIFY 字段名称 字段类型 [完整性约束条件] [FIRST|AFTER 字段名称]
修改字段名称
ALTER TABLE tbl_name CHANGE 旧字段名称 新字段名称 字段类型 [完整性约束条件] [FIRST|AFTER 字段名称]
添加默认值
ALTER TABLE tbl_name ALTER 字段名称 SET DEFAULT 默认值
删除默认值
ALTER TABLE tbl_name ALTER 字段名称 DROP DEFAULT
添加主键
ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY[index_type] (字段名称,...)
删除主键
ALTER TABLE tbl_name DROP PRIMARY KEY
添加唯一
ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] [索引名称](字段名称,...)
删除唯一
ALTER TABLE tbl_name DROP {INDEX|KEY} index_name
修改表的存储引擎
ALTER TABLE tbl_name ENGINE=存储引擎名称
设置自增长的值
ALTER TABLE tbl_name AUTO_INCREMNET=值
删除数据表
DROP TABLE [IF EXISTS] tbl_name[,tbl_name...]
数据的操作(DML)
插入数据
不指定具体的字段名
INSERT [INTO] tbl_name VALUES|VALUE(值...)
列出指定字段
INSERT [INTO] tbl_name(字段名称1,...) VALUES|VALUE(值1,...)
同时插入多条记录
INSERT [INTO] tbl_name[(字段名称...)] VALUES(值...),(值...)...
通过SET形式插入记录
INSERT [INTO] tbl_name SET 字段名称=值,...
将查询结果插入到表中
INSERT [INTO] tbl_name[(字段名称,...)] SELECT 字段名称 FROM tbl_name [WHERE 条件]
更新数据
UPDATE tbl_name SET 字段名称=值,... [WHERE 条件][ORDER BY 字段名称][LIMIT 限制条数]
删除数据
DELETE FROM tbl_name [WHERE 条件][ORDER BY 字段名称][LIMIT 限制条数]
彻底清空数据表
TRUNCATE [TABLE] tbl_name
查询数据操作(DQL)
查询记录
SELECT select_expr [, select_expr ...] [FROM table_references [WHERE 条件][GROUP BY {col_name | position} [ASC | DESC], ... 分组][HAVING 条件 对分组结果进行二次筛选][ORDER BY {col_name | position} [ASC | DESC], ...排序][LIMIT 限制显示条数]]
MySQL连接查询
内连接查询
JOIN|CROSS JOIN INNER JOIN
通过ON 连接条件
显示两个表中符合连接条件的记录左外连接
LEFT [OUTER] JOIN
显示左表的全部记录及右表符合连接条件的记录右外连接
RIGHT [OUTER] JOIN
显示右表的全部记录以及左表符合条件的记录联合查询
UNIONUNION ALL
UNION和UNION ALL 区别是UNION去掉相同记录,UNION ALL 是简单的合并到一起。
外键
外键是表的一个特殊字段。被参照的表是主表,外键所在字段的表为子表。设置外键的原则需要记住,就是依赖于数据库中已存在的表的主键。外键的作用是建立该表与其父表的关联关系。父表中对记录做操作时,子表中与之对应的信息也应有相应的改变。
外键的作用保持数据的一致性和完整性,可以实现一对一或一对多的关系
注意- 父表和子表必须使用相同的存储引擎,而且禁止使用临时表。
- 数据表的存储引擎只能为InnoDB。
- 外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同。
- 外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引。
外键约束的参照操作
- CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行。
- SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL。如果使用该选项,必须保证子表列没有指定NOT NULL。
- RESTRICT:拒绝对父表的删除或更新操作。
- NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同。
查看MySQL的存储引擎
查看MySQL支持的存储引擎
SHOW ENGINES
查看显示支持的存储引擎信息
SHOW VARIABLES LIKE 'have%'
查看默认的存储引擎
SHOW VARIABLES LIKE 'storage_engine'
索引
索引的分类
- 普通索引
- 唯一索引
- 全文索引
- 单列索引
- 多列索引
- 空间索引
创建索引
- 创建表的时候创建索引
CREATE TABLE tbl_name(字段名称 字段类型 [完整性约束条件],…,[UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY [索引名称](字段名称[(长度)] [ASC|DESC]));
在已经存在的表上创建索引
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名称 ON 表名 {字段名称[(长度)] [ASC|DESC]}
ALTER TABLE tbl_name ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名称(字段名称[(长度)] [ASC|DESC]);
删除索引
DROP INDEX 索引名称 ON tbl_name
- 【mysql】mysql视图学习总结
- Mysql cluster 学习总结
- mysql学习总结
- MYSQL学习总结
- mysql视图学习总结
- Mysql数据库学习总结
- mysql视图学习总结
- MySQL学习总结
- mysql视图学习总结
- mysql学习总结
- mysql视图学习总结
- MySQL学习总结
- mysql学习bug总结
- mysql学习总结 .
- mysql视图学习总结
- mysql学习总结
- mysql视图学习总结
- mysql 学习总结
- HDU 5246 超级赛亚ACMer(贪心模拟)
- downloadzip.php
- MySQL基础八:MySQL存储过程
- 【LeetCode】92. Reverse Linked List II 解法及注释
- Spring依赖注入的好处
- mysql学习总结
- Android项目中常用的工具类集(史上最全整理)
- SANAPHOR: Ontology-Based Coreference Resolution笔记
- CSS 外边距合并
- php 学习记录
- Android 自定义View (一)
- 组合数
- JAVA中的反射机制
- nfs搭建试验