一.SQL数据库语言分类
1.数据库查询语言(DQL)
常用保留字DQL:where,order by,having,select
用以从表中获得数据,确定数据怎样在应用程序给出
保留字select是DQL(也是所有SQL)用的最多的动词,这些保留字常与其他类型的SQL语句一起使用
专门用于查询数据:select,show
2.数据库操作语言(DML)
常用动词:insert,update,delete,用于添加,修改,删除表行
专门用于查询数据:insert,update,delete
3.事务处理语言(TPL)
常用单词:begin transaction,commit,rollback
它的语句能确保被DML语句影响的表的所有行得以及时更新。
专门用于事务安全处理:transaction
4.数据控制语言(DCL)
常用单词:grant,revoke,来确定单个用户或者用户组对数据库对象的访问
某些RDBMS可用grant或revoke控制对表单个列的访问
专门用于权限处理:grant,revoke
5.数据定义语言(DDL)
常用动词:create,drop,在数据库中创建新表或删除表(create table/drop table)
DDL包括许多人数据库目录中获得数据有关的保留字。他也是动作查询的一部分。
专门用于结构处理:create,drop(alter)
二.启动和停止MySQL服务
命令行打开mysql服务
net start 服务(mysql):开启服务
net stop mysql:关闭服务
系统服务打开mysql服务
services.msc:打开“服务”菜单
//手动操作打开
三.登录和退出MySQL系统
命令行登录
以下顺序:
mysql//进入mysql
-h//本地登录
-h[IP地址/域名]//其它地方登录
-P:3306//输入服务器中mysql监听的端口
-u:root//输入用户名
-p:password//输入密码
//示例
mysql -hlocalhost -P3306 -uroot -ppassword
SQL指令行退出
Exit;
\q
Quit
四.MySQL服务端架构
以下几层构成:
(外).数据库管理系统(DBMS),专门管理服务器端的所有内容
(上).数据库(DB),专门用于存储数据的仓库(可以有很多个)
(下).二维数据表(Table),专门用于存储具体实体的数据
(内).字段(Field),具体存储某种类型的数据(实际存储单元)
数据库中常用的几个关键字
Row:行
Colunm:列(field)
五.数据库基本操作
数据库是数据存储的最外层(最大单元)
1.创建数据库
create database 数据库名字 [库选项];
//出现ERROR阻止用户创建的用账号密码登录,不要默认匿名用户登录
库选项:数据库的相关属性
字符集:charset字符集,代表当前数据库下的所有表存储的数据默认指腚的字符集(如果当前不指腚,那么采用DBMS安装时默认的)
校对集:collate校对集
create database 数据库名字 charset 字符集名称
2.查看数据库
//显示全部
show databases;
//显示部分
show databases like'匹配模式';
_:匹配当前位置单个字符
%:匹配指腚位置多个字符
//显示数据库创建语句
show create database 数据库名字;
3.选择数据库
use 数据库名字;
4.修改数据库
//修改数据库字符集(库选项)
alter database 数据库名字 charset=字符集;
5.删除数据库
drop database 数据库名字;
//删除虽简单,但确保数据没问题
//删除数据库之后,对应的存储数据的文件夹也会被删除(opt)
六.数据表操作
1.普通创建表
create table 表名(字段名 字段类型[字段属性],字段名 字段类型[字段属性])[表选项];
create table 数据库名.表名(字段名 字段类型[字段属性],字段名 字段类型[字段属性])[表选项];
//也可以先进到那个数据库再来create
表选项:与数据库选项类似
Engine:存储引擎,mysql提供的具体存储数据的方式,默认有一个innodb(5.5以前是myisam)
Charset:字符集,只对当前自己表有效(级别比数据库高)
Collate:校对集
create table student(
name varchar(10)
)charset utf8;
2.复制已有的表结构
从已经存在的表复制一份(只复制结构,如果表中有数据不复制)
基本语法:create table 新表名 like 表名;
只要使用数据库名.表名格式,就可以在任何数据库下访问其它数据库的表名
3.显示数据表
ibdata1存储所有innodb存储引擎对应的表数据
显示所有表
show tables;
匹配显示表
show tables like 'c%';
//具体与上面显示库一样
显示表结构
显示表中所包含的字段信息(名字,类型,属性)
describe 表名
desc 表名
show columns from 表名
显示表创建语句
已经被加工过了
show create table 表名;
;与\g是一样的结束符,\G把表旋转了90度
设置表属性
engine,charset,collate
alter table student charset gbk;
//数据多了不要轻易改表属性
修改表结构
数据库中表名字通常有前缀:取数据库的前两个字母加上下划线
//修改表名
rename table 旧表名 to 新表名
//修改表选项
alter table 表名 表选项 [=] 新值
//新增字段
alter table 表名 add[column] 新字段名 列类型 [列属性] [位置first/after字段名]
//修改字段名
alter table 表名 change 旧字段名 新字段名 字段类型 [列属性] [新位置]
修改字段类型(属性):alter table 表名 modify 字段名 新类型 [新属性] [新位置]
//删除字段
alter table 表名 drop 字段名
默认是添加到末尾的,要用first或者after某个字段之后
删除表结构
drop table 表名[,表名2]
//可以同时删除多个表
七.数据基础操作
插入操作
本质含义:将数据以SQL的形式存储到指腚的数据表(字段)里面
insert into 表名[(字段列表)] values(对应字段列表)
insert into 表名 values(对应结构)
查询操作
select * from 表名
//* 表示匹配所有的字段
select 字段列表 from 表名
//部分字段查询
select 字段列表/* from 表名 where 字段名=值
//简单条件查询
八.删除操作
delete from 表名[where 条件];
如果没有where条件,系统将会自动删除该表所有数据!!!!!