mysql学习笔记-----数据库语言



1、MySQL 命令行客户端命令

   mysql -u root -p  (创建用户时候用这个登录)
   Enter the password:

   show databases;-- 查看数据库
   show tables; -- 查看表
   use test;  --使用test数据库
 
   SQL  Structured Query Language 结构化查询语言(所有数据库通用,不同的是,不同数据库有不同的函数);


2、数据定义语音(DDL)


   Data Definition Language  如create 创建drop删除 alter修改  对表结构的修改就是数据定义语言 (是表一级的
   create  database  dname;
   create table  teacher(
    tid int(11) primary key auto_increment  COMMENT '老师编号 ',
    name varchar(20) COMMENT '老师姓名 ',
    gender char(1) COMMENT '老师性别 ',
    age int(2) COMMENT '老师年龄 ',
    birth date COMMENT '老师生日'
   );
   desc tname;查看表结构
   属性之间用  空格隔开
   drop table;
   注明:COMMENT 是对表字段的描述的一个字段属性


   修改表


   alter table 表名 add column name varchar(10); 添加一列
   alter tbale teacher rename teacher_tab; 表重命名
   alter table tecaher_tab drop column birth; 删除列
   alter table teacher_tab add column createDate date; 增加列

   alter table test modify address char(10) ==修改某一列的类型 只改类型
   alter table test change address add char(40) --修改表列类型名字
   alter table test change column address add char(50) --同上
   
  

3、数据操纵语言(DML)
   DATA Manipulation Language (这是表数据一级的,数据操作语言,顾名思义就是操纵数据的)
   Insert ,update ,delete

   insert into 表名(字段1,2,3)values(1,2,4)
  
   update表名Set字段名='值',字段名='值' where 字段名="值"
   update table set id=1 where id=0
   update table set id=1,gender=m where id = 0  (注意改第二个改不成功,因为id改了,改第二个字段就找不到了)

   delete from table  (全删,谨慎使用)
   delete from table where ....id=1,>1,<1,>=1,<=等符号都能用   
  

4 DRL (Data Retrieval Language) 数据库查询语言
 
 1)查询所有信息
 
   select * from tablename;  //* 是通配符,实际工作中,避免使用* 因为* = 所有字段

 2)在没有表被引用的情况下,允许您指定一个DUAL 作为一个假的表名。DUAL是mysql中的虚拟表。

    select 1+1from dual ;
 
    mysql> select 1-1 from dual;
+-----+
| 1-1 |
+-----+
|   0 |
+-----+


 3)查询Id为n的信息

   select * from tablename where id = n;

 4)查询一个字段是空的信息

  select * from tablename where id is null

  id=null是会报错的,数据库会当null是字符串,而且缺少‘’号

  select * from tablename where is not null

 5)使用别名,查询

  select XXX as mmm from tablename where id = 1

 6)两个并列条件
  select * from tbn where id =1 and ...

 7)查询id>5的
  select * from tbn where id >5
 
 8)or的用法

  select * from tbn where id =1 or ...
 
 9)模糊查询(例如最后一个字母s的)

  select * from tbn where name like '%s';//%是通配符
 
 10)查询姓名以制定字符开头的
 
  select * from tbn where name lke 'c%';//

 11)查询包含某个字母的姓名
 
  select * from  tbn where name like '%w%'

 12)排序

  select * from tbn where ...order by inputDate desc;(降序,从大到小)

 13)多个条件排序

  select * from tbn where ..order by inpuDate desc,age;//年龄升序,时间降序

 14)分组

  select * from tbn where ...group by gender 按性别分组

  查询并统计不同性别的人数 
  select gender,count(gender) from tbn group by gender;

 15)分完组以后的条件(分组以后的查询条件,where是分组之前)

select gender,count(gender) from tbn group by gender having  gender='m'
 
 注意上面这种写法效率很低,应该避免使用

select gender,count(gender) from tbn where gender=m; 比上面效率高。

 16)查询记录数

 select count(*) from tbn;
 select count(id) from tbn;

 select count(id) as c from tbalename tbn;
 
 select t.name,t.age from tablename t;

 17 )limit 使用(分页技术必用技术)

 select * from tbn limit 0 ,3

五。事务控制语言(TCL)

 事务控制语言(Transaction Control Language--TCL)事务控制语言
 COMMIT,ROLLBACK
 事务:(Transaction) 是访问并可能更新数据库中各种数据项的一个程序执行单元(unit).
 例如去银行取款,需要,先进银行,插卡取钱等步骤。

 在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或者整个程序。

 事务应该具有4个熟悉:原子性(atomicity):不能再分的最小单元,就是一些sql语句一个整体,不能再分。
 一致性(consistency),隔离性(isolation):事务和事务之间是隔离的,持续性(durability):事务开始事务结束是持续的。
 ACID特性。

设置默认事务提交方式

 set autocommit = false -设置事务提交方式为“手动提交”
 set autocommit = true -设置事务提交方式是“自动提交”

 事务就是对数据库的多步操作,要么一起成功,要么一起失败

 commit --手动提交事务
 rollback;--回顾事务
 savepoint point2 --保存还原点
 rollback to point2;--回滚到还原点


没有提交commit 的时候可以回滚,commit以后回滚不了啦就。。。。


你可能感兴趣的:(Mysql学习笔记)