本文整理自网络,侵删。
一、MySQL安装
MySQL的下载
http://dev.mysql.com/downloads/mysql/
MySQL版本选择
MySQL功能自定义选择安装
功能自定义选择
路径自定义选择 设置root用户密码安装完成,点击MySQL Workbench 6.3 CE进入MySQL客户端
二、SQL基础
SQL语句分类
1.DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象。常用的语句关键字主要包括create/drop/alter
2.DML(Data Manipulation Language)语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。常用的语句关键字主要包括 insert/delete/update/select等
3.DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括grant/revoke等
DDL语句(涉及表的定义、结构的修改)
一、create语句
Query Ok代表语句执行成功
1 row affected代表数据库一行收到影响
0.01 sec代表操作执行的时间
create table student( SID int not null auto_increment, sNo int , sName varchar(50) not null, primary key(SID) );
1.查看系统中都存在哪些数据库(show databases;)
2.在查看系统中已有的数据库后,可以用(use dbname)选择对应的数据库
3.在选择对应的数据库后,查询该数据库下面的所有的表(show tables)
二、删除数据库
删除数据库的语法:drop databse dbname;
三、创建表
语法:create table tablename(column_name_1 column_type_1 constraints,column_name_2 column_type2 constrationts)
mysql的表名是以目录形式存储在磁盘上,表名的字符可以是任何目录名允许的字符。
column_name是列名
column_type是列的数据类型
constrationts是列的约束条件
1.查看表定义:desc tablename
2.查看创建表的SQL语句:show create table tablename
四、删除表
删除表的语法:drop table tablename;
五、修改表
aleter 语法 | 说明
---|--- alter table tablename modify columnname newColumnType | 修改表字段的类型(==modify 不能更改字段名称==) alter table tablename add newColumnname newColumnType| 增加表字段 alter table tablename drop oldCloumnname|删除表字段 alter table tablename change oldColumname newColumnname newColumntype|修改字段的名称及类型 alter table tablename rename (to) newtablename|修改表名称
修改字段的排列顺序
在alter的语法后面都有[first\after columnname]可选项
alter table user add address varchar(20) first ; alter table user add age int after name ;
DML(对数据库表记录进行操作,增(insert)删(delete)改(update)查(select))
1.insert语句
语法:
插入一条:insert into tablename(columnname1,columnname2...)values(val1,val2...);
插入多条:insert into tablename(columnname1,columnname2...)values(val1,val2...),(val1,val2...);
2.update语句
语法:update tablename set columnname=value [where condition]
如果使用MySQL Workbench,update语句不加where条件的会执行错误,需要如下图设置取消设置:
-3.delete语句
语法:delete from tablename where condition
-4.select语句
语法:select * from tablename [where condition]
5.表连接
1.内连接(仅选出两张表中互相匹配的数据)
select cno,cname,sname from student inner join course on cno=sno; select cno,cname,sname from student,course where cno=sno;
2.外连接
外连接又区分:
1.左连接(left join):包含左边表的所有记录,右边没有的为Null
2.右连接(right join):包含右边表的所有记录,左边没有的为null
6.子查询
-7.记录联合
语法:
select * from t1 union all select * from t2; select * from t1 union select * from t2;
union all与union的区别:
union all是把结果集直接合并在一起,而union是将union all后的结果进行一次distinct,去除重复后的结果
DCL语句(DCL语句主要是dba用来管理系统中的对象权限)
grant与revoke
三、MySQL支持的数据类型
数值类型
MySQL支持类型后面的小括号指定显示宽度,例如:int(5)表示当数值宽度小于5的时候在数字前面填满宽度,如果不显示指定宽度则默认为int(11)。如果插入的数据大于这个数值宽度,对实际的插入值是没有影响的,是按照int类型的实际大小进行的。
create table valuetype( age int, age1 int ) insert into valuetype(age,age1)values(1,2);//这时候数据库就显示1 alter table valuetype modify age int zerofill;//这时候数据库就显示'0000000001'
数据插入bit类型字段时,首先转换为二进制,如果位数允许,将插入成功,如果位数小于实际的位置,则插入失败。
日期时间类型
mysql里面获取当前时间为now().mssql获取当前时间为getdate()
timestamp,支持的范围非常小,从1970-2038年,timestamp受时区的影响
create table timestamptest( tp timestamp)
系统会自动给tp赋予默认值current_timestamp(系统日期),但是mysql只给第一个timestamp设置默认值,如果有第二个timestamp类型,则默认值设置为0
字符串类型
1.char与varchar类型的区别:
char列最后的空格已经删除,而varchar保留空格
四、MySQL中运算符
算术运算符
比较运算符,满足返回1,否则返回0
逻辑运算符(布尔运算符)
位运算符
运算符优先级,大多情况下使用()进行操作
五、常用函数
字符串函数
数值函数
日期和时间函数
流程函数
其他函数
六、选择合适的数据类型
char与varchar
在Innodb存储引擎中,建议使用varchar类型。对于Innodb数据表,内部的行存储格式没有区分固定长度和可变长度列,因此固定长度列的性能不一定比不可变长度的性能好。
Text与blob
一般在保存少量字符串的时候,我们会选择char或者varchar,而在保存较大文本的时候,通常会选择使用text或者blob。两者的区别:text只能保存字符数据,比如日志。blob能保存二进制数据,比如照片。
浮点数与定点数
在MySQL中,decimal或者(numberic)用来表示定点数
日期类型的选择
date/time/datetime/timestamp
七、索引的设计和使用
索引概述
索引是数据库中用来提高性能的最常用工具。在MySQL中,MyISAM与Innodb存储引擎的表默认创建的都是Btree索引。
相关阅读 >>
mysql登录报错提示error 1045 (28000)错误的解决方法(图文)
更多相关阅读请进入《mysql》频道 >>
数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。