一 数据库常用操作
mysql -u+username -p+password:登陆数据库管理系统,如mysql -uroot -p123。
create database dbName:创建数据库。
drop database dbName:删除数据库。
use dbName:使用指定数据库,因为数据库管理系统中可能存在多个数据库,通过名称使用指定的数据库。
show databases:展示数据库管理系统中全部数据库。
select database():显示正在使用的数据库。
set character_set_results=gbk:很多数据库不支持中文,设置编码方式,使中文正常显示,主要用于解决在DOS窗口中显示查询结果时中文乱码的问题。
source+path(.sql文件路径):导入数据库文件,生成数据库,即根据sql脚本生成数据库。
mysqldump mydatabase>保存目录 -uroot -p123:将数据库的全部信息保存到硬盘中的.sql脚本文件中,由于已经指定用户名与密码,所以在不进入数据库的情况下操作(语句结尾不加分号)。
create user username identified by 'password':创建指定名称与密码的用户,允许该用户访问数据库。
drop user username"%":删除用户。
二 表常用操作
create table tableName(columnName type(length)):创建数据库。
drop table tableName:删除数据库。
alter table tableName add XXXX:向数据库中增加字段。
alter table tableName drop columnName:删除字段。
alter table tableName change oldName newName XXXX:覆盖字段。
alter table tableName modify columnName XXXX:修改字段属性。
create table copyTable as select columnName/* from oldTable:复制表,可以复制全部字段,也可以复制部分字段。
mysqldump mydatabase mytable>保存目录 -uroot -p123:将数据库中的某一张表中的全部信息保存到硬盘中的.sql脚本文件中,注意:数据库与表之间用分号隔开,形成两个字符,一个代表数据库,一个代表数据库中的表,如果用"."连接,会被当做一个字符,即数据库,因为系统中不存在该名称的数据库,运行时产生错误。
select@@identity:获取刚刚插入的数据的id。
三 SQL语言分类
1.DDL
Data Definition Language,数据定义语言,create/alter/drop。
create:用于数据库与表的创建。
alter:用于表的修改。
alter table tbName add XXXX:向表中添加字段,或者为字段增加约束。
alter table tbName mofify XXXX:修改字段。
alter table tbName drop XXXX:删除字段或者约束。
drop:用于删除数据库、表、字段、字段约束。
2.DML
Data Manipulation Language,数据操纵语言,update/delete/insert。
3.DQL
Data Query Language,数据查询语言,select。
4.TCL
Transaction Control Language,事务控制语言,commit/rollback。
5.DCL
Data Control Language,数据控制语言,控制访问数据库的权限,grant/revoke。
四 DQL语句构成
create table tbName(id (1) primary key auto_increment,name varchar(10) not ,classNo (1),foreign key(classNo) references 父表(父表中被引用字段));在表创建完成以后,可以为表中字段添加约束:alter table tbName add 约束定义形式。
一张表可以有多个外键字段,外键字段可以为null。
父表中被引用字段数据不能重复,必须有unique约束。
⑶级联操作
为了保证子表中的数据跟随父表的变化而变化,可以为外键添加级联操作。
级联关系是父表控制子表,使子表发生同样的变化,不是子表控制父表,子表的变化不影响父表。不设置级联操作时,父表被引用字段被引用数据不能更改,外键字段可以更改为父表中主键字段的其他值。
级联更新:
当父表中的数据更新时,子表中的数据做出同样的更新。
级联删除:
当父表中的数据被删除时,子表中对应的数据也同样被删除。
同时为外键设置级联更新与级联删除:
以上两种方式只对当前会话有效。
5.隔离级别
read uncommitted:一个事务可以读取另一个事务未提交的数据,这个数据被称为脏数据。
read committed:其他事务频繁地提交数据,另个事务(时间跨度大)在未提交之前多次读取提交的数据,可能出现多次读取的数据不一致。
repeatable read:事务首次从数据库中读取数据,然后将数据保存在内存中,以后不是从数据库,而是从内存中读取数据。这种隔离级别可能导致读取的数据与数据库中数据不一致,出现“幻想”。
serializable:一个事务操作完数据以后,其他事务才可以操作。
6设置隔离级别
set global transaction isolation level XXXX:对所用会话有效。
set session transaction isolation level XXXX:只对当前会话有效。
7.查看隔离级别
select@@tx_isolation: 查看当前会话的隔离级别,另一种方式 select@@session.tx_isolation。
select@@global.tx_isolation: 查看全局的事务隔离级别。