数据库

数据库基础语法(DDL)

创建数据库:
	create database 数据库名;
	create database if not exists 数据库名;(若不存在,则创建)
查看看数据库信息:
	show create database 数据库名
修改数据库编码格式:
	alter database 数据库名 default character set gbk(编码格式);
删除数据库:
	drop database 数据库名;
	drop database if exists 数据库名 ;(如果存在,则删除)
	
	
	
使用数据库:use 数据库名;
查询该库中的表:show tables;
创建表:
    create table 表名(
     字段名称 字段类型,
     ...
    );
查询表的结构:
	desc 表名;
修改新的表名:
	later table 表名 rename to 新表名
删除表:
	drop table 表名
	drop table if exists 表名(若存在,则删除)



修改表:
给表新增一列:
	alter table 表名 add 字段名 类型;
修改表的数据类型:
	alter table 表名 modify 字段名 修改后的类型
修改表的名称:
	alter table 表名 change 当前字段名 新字段名 类型

数据库的增删改查(DML,DQL)

--注释符号
查询表的结构
DML语句:操作语句



插入数据:
	insert into 表名 values(1,2...)
插入部分字段:
	insert into 表名(字段,...)values(1...):字段顺序必须要对应值




删除表的记录:
	delete from 表名 条件(where)
删除全表数据:
	delete from 表名:删除全表数据
	注:不会影响自增长的主键,(删除全表的数据,不会清除自增长主键)
	truncate table 表名:删除表以及表中数据,-创建一张一模一样的表
	注:直接删除表,自增长主键会清除掉


修改表:
带条件修改单个字段:
	update 表名 set 字段名 = 赋值 where 字段=(需要带where,不然会批量处理)
修改多个字段:
	update 表名 set 字段名 =赋值,字段名=赋值
   where 字段=值




基本的查询语句:

查询全表数据:
	select 全部字段(*) from 表名;
查询指定字段:
	select 查询的字段 from 表名
	
条件查询:
	基本条件查询:where语句
        条件:使用表达式符号:<,>,<=,>=,<>(不等于)
        并列关系:and(&&)
        或的关系:or(||)
        之间关系:between...and...
        集合:in(字段)
        条件:is null:xxx是null值  ,is not null(不是null)
        将地址去重:
            select distinct 字段名称:将该字段去查询
        给某个字段起别名:
            select 需要查询的字段名称 as(省略不写) '名称' from 表名

   
模糊条件查询:关键字:like
	%:表示多个任意字符
	_:代表一个字符
	select 字段名称 from 表名 where 某个字段 like '模糊符号'
    如果dos中出现中文乱码--查询所有包含'character'的变量
    


排序查询:
asc:升序查询
desc:降序排序

单个字段排序:
	select 字段名称列表 from 表名 order by 排序的字段 排序规则
多个字段排序:
	select 字段名称列表 from 表名 order by 排序的字段1 排序规则,排序的字段2 排序规则
	注:优先按照第一个字段排序,如果第一个字段值相等,在按第二个字段规则排序
   

    
聚合函数:
count函数(统计)
	select 函数名(字段) '别名' from 表名
    注:一般都是里面用的非业务字段
max函数
min函数
avg函数(平均)
sum函数

分组查询:
	group by 分组字段
		select 分组的字段 from 表名 条件(where) group by 分组字段
	筛选:having 
	注:是需要放在group by后面	
having和group by的区别:
	位置区别:
		group by是在where条件后面使用,不能使用聚合函数,但是查询的时候可以
		having是在group by后使用,可以使用聚合函数
		
分页查询:
关键字:limit
语法格式:select * from 表名 limit 起始行数((当前页码数-1)*每页显示条数),每页显示的条数

数据库约束

数据库约束: (创建表时操作)
	约束:通过一些特定的关键字,保证数据的安全性,正确性和有效性!
	
	默认约束 字段名称 类型 default '值'
		当某个字段没有赋值的时候起作用,如果赋值了就按照实际值赋值即可
		
	非空约束 not null
	
	唯一约束 unique
		删除唯一约束:alter table 表名 drop index 带有唯一约束的字段名称
		
	主键约束 primary key 
		特点:非空且唯一
		注:主要用在非业务字段上
		删除主键:alter table 表名 drop primary key
		添加主键:alter table 表名 modify 字段字段类型 primary key
		
	自增长约束 auto_increment

	外键约束 (外键声明在从表上) foreign key
		让多个表之间产生一种关系,来保证数据的安全性和有效性
		constraint(声明) 外键名称 foreign key
		(员工表id) reference(关联) 主表的主键id
	
级联操作CASCADE
            添加级联操作(级联修改和级联删除)
ALTER TABLE emploee ADD  

	CONSTRAINT dept_emp_fk FOREIGN KEY (dept_id) 
	REFERENCES dept(id) ON DELETE CASCADE  ON UPDATE CASCADE ;
            

数据库的备份和还原

 数据库的备份和还原

备份
     1)命令行的方式:进入dos
     备份的语法格式 mysqldump -u用户名 -p密码 数据库的名称 > 保存的路径
     2)使用推行界面化的方式来进行数据库的备份
     进入到sqlyog工具中--- 在数据库的上面右键---选择备份


 还原数据库
     1)进入dos之后:登录的msyql数据库中
     登录成功之后,删除当前mydb_04这个数据库
     source 之前备份的sql文件路径-- 回车 
     2)图形界面化的方式
     在sqlyog中删除当前mydb_04数据库,然后右键选择 以sql的转存文件来导入...

多表查询

多表查询---内连接

        隐式内连接

            select
                列名列表
            from	
                表名列表
            where
                连接条件;
                
                
        显示内连接

            select	
                    列名列表
            from	
                    表名1
            inner(可以省略) join
                    表名2
            on
                    连接条件
                    
多表查询之:外连接查询(左外/右外)
	左外连接:将左表的数据全部查询并且还有查询交集部分(连接条件) (推荐方式)

            select	
                字段列表
            from
                左表(表名1)
            left outer join
                右表(表名2)
            on
                连接条件
            
	右外连接查询:将右边全部显示以及多个表的交集部分数据(连接条件)

            select	
                字段列表
            from
                左表(表名1)
            right outer join
                右表(表名2)
            on
                连接条件            
  


多表查询之:子查询: select 嵌套select语句

	select	
		字段列表
	from
		表名1
	where  表达式(<,<=,>=,>,=) 
		select 
			字段列表
				from  表名...

三种情况:
         单行单列
         单行多列
         多行多列
             
 使用表达式<,>,<=,>=,=
             in(集合数据)
 复杂嵌套:讲一个select语句的查询结果当做一个虚表进行二次查询
     

事务

事务:将整个业务操作看成一个整体; 这些事务的执行要么同时成功,要么同时失败!
start transaction ;开启事务
 rollback ; 回顾事务 -- 回滚到操作语句之前
 commit; 提交数据
 
 
 
 查看当前提交方式:
SELECT @@autocommit ;-- 1)默认自动提交
 set @@autocommit = 0 ; 非自动提交
 针对DML语句:增删改---数据自动提交的
	如果开启事务:针对增删改;这些语句执行完毕之后必须 commit 
	
	
	
事务的特点
         ACID
         原子性:事务不可分割的,要么sql同时执行成功,要么同时执行失败
         一致性:事务的整个操作前后:开启事前和开启事务后,最终的总量保持不变!
         隔离性:事务和事务之间是独立的,比如:修改账户/ 添加/删除,每一个具体业务都是独立的事务!
         持久性:一旦事务执行成功,操作持久(永久存储的!)

事务的隔离级别:针对数据库级别的安全性!
        select @@tx_isolation; 查看事务的隔离级别
        SELECT @@tx_isolation; -- mysql的隔离级别默认:第三种:repeatable-read:可重复读!
        脏读:是最危险---一个事务读取到了另一个没有提交的事务!


四个隔离级别
         read uncommitted  :读未提交---安全性最差: 出现脏读,不可重复读 幻读问题
         read coommitted :  读已提交				
         repeatable read: 可重复读
         serializable   :  串行话----隔离级别最高
         隔离级别越高,性能越低!
         set global transaction isolation level 隔离级别名称;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值