A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 沃土乐也强了 初级黑马   /  2018-12-10 16:16  /  816 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

SQL分类:
DDL(Data)操作数据库和表的增删改查
DML()增删改表中的数据(对数据的)
DQL()查询表中的数据(对数据的)
DCL()授权访问权限和安全级别的
创建数据库
Create database  数据库名称 default character set字符集。
retrieve查询
查看数据库的字符集:show create database 数据库的名称。
查看所有数据库的名称: show databases;
updata修改
修改数据库的字符集:alter database 数据库的名称 character set 字符集。
Delete 删除
删除数据库:drop database (if exists) 数据库名称;
使用数据库
查询当前正在使用的数据库名称: select database();
使用数据库:  use 数据库名称;

操作表
创建:(Creat) :
create  table 表名 ( 列名1 数据类型1,列名2 数据类型2,.....列名n 数据类型n);
注意最后一列不需要加逗号!
其中的数据类型: int: 整数类型; double:小数类型。
date:日期;只包含年月日yyyy-MM-dd。 datetime(默认null):日期,包含时分秒yyyy-MM-dd  HH:MM:ss。
timestamp(默认值,系统时间):时间戳类型,包含时分秒。不给这个字段赋值的话,或者赋值为空的话,会自动生成系统的默认时间。
字符串有三种类型:char、varchar、text在定义的时候必须给出长度!。
char 和varchar的区别  
char(长度):char会把长度固定,同时不足的部分用空格补全。
varchar(长度):长度在不超范围的情况下,可以根据文本内容改变。
hello  world!存入的长度不能超过指定长度
text:超大文本,文本文件保存的。
Retrieve
查询某个数据库中所有的表名称:show  tables;
查询表结构:desc 表名。也能看数据类型。   show create table:展示建表时候的语句信息。
Updata:修改  5条
1.修改表:
alter  table 表名 rename to 新的表名;
(这个是用来修改列名的)alter  table 表名 change 列名 数据类型  约束;
修改表名:符号最多用个下划线。rename table 原表名  to 新表名;
2.修改表的字符集:
alter  table  表名  character  set 字符集名称;
3.修改列的长度、约束、类型:;
alter table 表名  modify 列名 新数据类型(长度)  约束;
4.添加一列
alter  table   表名 add  列名  数据类型  约束;
5. 删除列
alter  table  表名  drop  列名;
Delete:删除
drop  table  表名;  drop  table if  exists 表名;


DML:增删改表中的数据
添加数据: insert  into 表名(列名1, 列名2, 。。。列名n)  values (值1,值2,。。。值n)最后的值不能写逗号。
注意:列名和值要一一对应。 如果不定义列名,则默认给所有的列名添加值。 除了数字类型,其他类型都需要用引号(单,双)引起来。
删除数据
delete  from  表名  where 条件; 注意:如果不加条件,就会删除所有表中的数据。
修改数据
update  表名  set  列名 1 = 值1, 列名2 = 值2,。。。where 条件。注意:如果不加任何条件,则会将表中所有数据全部修改。
如果要删除所有记录
delete from 表名;--不推荐使用。有多少条记录就会执行多少次删除操作
--> dml(可以通过事务进行还原)
       truncate table 表名:删除表。然后在创建一个一模一样的空表。
--> ddl(不可以通过事务进行还原)
四大特性:
原子性:是不可分割的最小操作单位,要么同时成功,要么同时失败.
一致性:事务操作前后数据总量不变,
持久性:如果事务一旦提交或者回滚后,数据库会持久化的保存数据.
隔离性:多个事务之间,相互独立.
四大隔离级别:多个事务之间是隔离的,相互独立的.但是如果多个事务操作同一批数据,则会引发一些问题,设置不同的隔离级别就可以解决这些问题.
存在的问题:
脏读:一个事务,读取到另一个事务中没有提交的数据.
不可重复读:在同一个事务中,两次读取到的数据不一样.
幻读:一个事务(DML)数据表中所有记录,另一个事务添加了一条数据,则第一个事务查询不到自己的修改
虚读:
隔离级别:
read_uncommitted  :读未提交
  脏读  不可重复读,虚读,幻读(效率高,但是非常不安全)
read_committed (oracle):读已提交
不可重复读,虚读,幻读
repeatable _ read(mysql)  :可重复读
虚读,幻读
serializable:串行化
可以解决所有问题.
注意隔离界别从小到大安全性越来越高,但是效率越来越低
数据库查询隔离级别
select  @@tx_isolation
数据库设置隔离界别


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马