您的位置:首页 > 数据库 > MySQL

mysql 数据库基本操作

2017-11-15 10:42 441 查看
数据库表的数据操作简称为  CRUD  ( 增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete) )

1. cmd 连接数据库

   
mysql -u root -p;

2. 数据库管理

1. 查询全部数据库  

show databases;

2. 创建数据库

create database day15;
create database day15 default character set utf-8;

3. 删除数据库

drop database day15;

4. 查看数据库的默认字符集

show create database day15;

5. 修改数据库的字符集

alter database day15 default character set gbk;

6. 选定某个数据库

use  day15;

 

3. 表管理

1. 查看全部的表

show tables;

2. 创建表

create table student( sid int, sname varchar(20), age int );

3. 查看表结构(字段以及类型)

desc student;

4. 删除表

drop table student;

5. 修改表
1) 添加表字段 (add column)

   alter table student add column sgender varchar(2);

2) 删除表字段 (drop column)
 
   alter table student drop column sgender;

3) 修改表字段名字 (change column)

   alter table student change column sgender gender varchar(2);

4) 修改字段类型 (modify column)

   alter table student modify column sgender  varchar(20);

5) 修改表名

   alter table student rename to teacher;

6. 增删改数据( insert into, update, delete from )

1.1 增加数据 (插入所有字段,一定要依次按顺序插入,不能多字段,也不能少字段)
   (insert into)

                      
   insert into student values(1, '张三','男',20); 
   insert into student(id, name) values(2, '李四');

1.2 修改数据(update)

    1.修改所有记录

update student SET gender='女';

    2.带条件的修改(建议使用)
        

        update student SET gender='男' WHERE id=1

    3. 同时修改多个字段 (SET 字段名=值,字段名=值,...)
       
UPDATE student SET gender='男',age=30 WHERE id=2;

1.3 删除数据( delete from )           

     
    1.删除所有数据(建议少用)

delete from student;

    2.带条件的删除(推荐使用)

delete from student where id=2;

    3. delete from 与 truncate table
     
delete from  可以全表删除, 也可以带条件删除,只能删除表中数据,不能删除约束;使用delete from删除的数

据可以回滚(事务)
truncate table 全表删除,不能带条件删除,删除表中数据时,也删除了约束;数据不能回滚;

7 查询数据(重点)

7.1 查询所有列

   select * from student;

7.2 查询指定列

           select id, name, gender FROM student;

7.3 查询时添加常量列
   ( ‘java就业班’ 表示每条记录中的值, AS ‘年级’表示表列名字 )

         
   select id, name, gender, age, 'java就业班' AS '年级' from student;

7.4 查询时合并列
   
   需求: 查询每个学生的servlet和jsp的总成绩
   select id,name.(servlet+jsp) AS '总成绩' from student;

7.5 查询时,去除重复记录(DISTINCT)

   需求:查询学生的性别(结果将只会有性别这一项值) 
   select distinct gender  from student;
   select distinct(gender) from student;
   select distinct(address) from student;

     

7.6 条件查询
    条件查询  where
    7.6.1 逻辑条件: (and逻辑与, or逻辑或) 
          select * from student WHERE id=2 AND name='李四;  取交集
  select * from student WHERE id=2 OR name='张三'; 取并集

    7.6.2 比较条件: (>,>=,<,<=, = <>不等于, between and (等价于>= 且 <=) )
 
   

  select * from student WHERE servlet>70;

          select * from student WHERE jsp>=75 AND jsp<=90;
  select * from student where jsp between 75 AND 90;

  select * from student where gender<>'男';

    7.6.3 判空条件 (null空字符串)  is null, is not null,

  空        null
  空字符串  ''  (空字符串是有值的)

                          //判断null
  select * from student where address is NULL;
       
  //判断空字符串
  select * from student where address is NULL OR address='';

  select * from student where address is not null or address<>'';

    7.6.4 模糊查询 LIKE
  
  通常使用一下替换标记:
  %: 表示替换任意个字符;
  _: 表示替换任意一个字符;
          
  查询姓‘张...’
  select * from student where name like '李%';

  查询姓 '张_'
  select * from student where name like '李_';

  select * from student where name link '%李%名_%'
   
 

                     7.6.5 聚合查询  

  常使用的聚合函数(将所有记录的某列值进行计算) sum(),avg(),max(),min(),count()
   
  查询学生的servlet的总成绩  (sum() 求和函数)
  select sum(servlet) AS 'servlet的总成绩' from student;

  查询学生的servlet的平均分  ( avg()  平均数 )
  select avg(servlet) AS '平均分' from student;

  查询当前servlet的最高分  ( max() 最大数 )
  select max(servlet) AS '最高分' from student;

  查询当前servlet的最低分  ( min() 最小数 )
  select min(servlet) AS '最低分' from student;

  统计当前有多少学生 (count字段)
  select count(*) from student;
  select count(1) from student;s

   
 
     7.6.6 分页查询  LIMIT
    

  分页查询 ( limit 起始行,长度 )
  
  查询第一页的数据(查询第1,2条记录)
  select * from student limit 0,2;

  查询第二页的数据(查询第3,4条记录)
  select * from student limit 2,2;

  查询第三页的数据(查询第5,6条数据)
  select * from student limit 4,2;

      7.6.7 查询排序 order by

   语法:  order by 字段 asc/desc

   默认情形,按照插入记录顺序排序
   select * from student;

   按照id顺序排序
   select * from student order by id ASC;
   select * from student order by id ; --默认正序

                           select * from student order by id DESC; --反序

   2) 多个排序条件 ( order by servlet asc, jsp desc,... )
      

                             select * from student order by servlet asc, jsp desc;

       

7.6.8 分组查询(group by)  --distinct只能获取某列具有不同值;
   
   查询男女的人数.
   select gender,count(*) from student group by gender;

7.6.9 分组查询后筛选
 
   查询总人数大于2的性别

   注意: 分组之前条件使用where关键字,分组之前条件使用having关键字
   
   select gender,count(*) from student where group by gender having count(*)>2;     

   

 
   

     

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: