数据库基础知识

230 阅读4分钟

数据库

创建数据:

create database 数据库名

查看所有数据库:

show databases 

查看当前面创建好的数据库不能查询之前创建的数据库:

show create database `create`

规避关键字可以用create(反引号):

删除数据库:

drop database 数据库名

dos命令下执行 启动数据库:

启动服务:
net start MySQL
启动数据库:
MySQL -u root -p
关闭数据库:exit quit
备份命令,在dos命令下执行:
mysqldump -u root -p -B hsp_db01 >d:\bak.sql
恢复命令,在dos命令下执行:
source d:\bak.sql

关闭数据库exit quit。

备份命令,在dos命令下执行:

mysqldump -u root -p -B hsp_db01 >d:\bak.sql

恢复命令,在dos命令下执行: source d:\bak.sql

创建数据库表。

注意事项字段后加数字。

create table 表名(
                  id int(10),
                  `name` varcher(10),
                  `password` varcher(10),
                  birthday date,
                  age int(10)
);
主键自增auto_increment自定义自增的属性每次加 1
字段不为空not null输入字段不为空若为空报错

MySQL常用数据类型:int varcher double date(日期) time(时间)。

修改表名:

rename table emp to ttt
   (修改前的表名emp)     (修改后的表名ttt)   

添加列:

after /ˈæftər/ 在……之后。

default / dɪˈfɔːlt / 默认,系统设定值。

            emp表名
alter table emp 
            add 要添加的列名 varchar(32) default ''
                        after 那个列名之后;

修改列名与属性属性:

alter table emp 
            change `job` jop varchar(32) default '';
                      (修改前的列名job)     (修改后的列名jop)   
​
            emp表名
alter table emp 
            modify 列名 varchar(32)(修改属性)

删除列:

alter table 表名 drop 列名
查看表的结构:desc表名 ;可以查看表的列

数据库 C R U D

C(create)创建R(read)读U(update)修改D(delete)删除

insert

insert into 表名(所有的列名的字段必须一致) value (要插入的数据内容);

update

  1. update语法可以用新值来更新原有表中的各列值。
  2. set子句只是要修改那些列和要给与那些值。
  3. where子句指定应更新那些行。如没有where子句,则更新所有的行记录。
update 表名 set 列名=XXX 
           where 列名=列值
           

delete

  1. 如果不使用where字句,将删除表中所有数据。
  2. delete语句不能删除某一列的值。可以使用update设为null或者``。
  3. 使用delete语句仅删除记录,不删除表本身。如果要删除表 ,使用drop table 语句。drop table 表名。
delete from 表名
             where 列名= XXX

select

  1. distinct可选,指显示结果时,是否去掉重复数据。

  2. 运算符:

    1. 比较运算符:

      1. +-><=:加 减 大于 小于 等于。
      2. between ....and...:显示在某一区域的值。
      3. in(set):显示在in列表中的值。例:in(100,200)。
      4. like:模糊查询。例:like ' %%% '。
      5. is null :判断是否为空。
    2. 逻辑运算符:

      1. and:多个条件同时成立。
      2. or:多个条件任一成立。
      3. not:不成立。例:where not(列名不符合)。
    去掉重复数据
    select distinct 列名..from 表名;
    ​
    select * from 表名
                 where (列名+列名)><=数值
                 and 列名 > 列名 -- 列的比较
                 and `列名`like '韩%';-- 模糊查询
    -- 1
    select *from 表名 
                 where 列名 > '60'and 列名 >'80';
    select *from 表名 
                 where 列名 between 60 and 80; 
    -- 2
    select *from 表名 
                 where 列名 = 66 or  列名 = 85 or  列名 = 97;
    select *from 表名 
                 where 列名 in ('66','85',97);
    
  3. 使用order by子句排序查询结果:

    1. order by 指定排序列。排序的列既可以是表中的列,也可以是select语句后指定的脸。
    2. asc :升序(默认)desc :降序。
    3. order by 此句应位于select语句结尾。
    select  列名,(列名+列名+列名)as sum from 表名 
                                     where 列名 like '李%' 
                                     order by sum 
    
  4. 统计函数:

    1. count:返回行的总数。

    2. count(*)与count(列名)区别:

      1. count(*):返回的是条件的记录的行数。
      2. count(列名):统计满足条件的某列有多少个,但是会排除 为null的。
    3. sum:返回满足where条件的行的和。

    4. sum:仅对数值起作用,否则报错。

    5. avg平均数。

    6. max/min:函数返回满足where条件的一列的最大/最小值。

    select count(*) from 表名
                         where (english+chinese+math) > 100
    select count(*) from 表名 -- 返回值是表的所有行数
    select count(列名) from 表名-- 返回值是表中有数据的所有行数select SUM(列名),sum(列名) from 表名
    select SUM(列名+列名)from student
    ​
    select avg(列名),AVG(列名)from 表名
    select avg(列名+列名)from 表名
    ​
    select max/min(列名),max/min(列名)from 表名
    select max/min(列名+列名)from 表名
    
    1. group by:子句队列进行分组。
    2. having:子句对分组后的结果进行过滤。
    select avg(列名),max(列名) from 表名
                              group by 列名
                              having 列名加条件
                              只能用having不能用where否则报错
    
    1. 字符串:

      1. charset(列名)返回字串字符集。
      2. concat(列名," ",列名)连接字串。
      3. ucase(列名)转换成大写。
      4. lcase(列名)转换成小写。
      5. lelt(列名,个数)列名显示几个。
      6. replace(列名,’ XXX‘,’XX ‘)更改列名。把XXX改成XX。
      7. substring(列名,XX,XXX)列的第XX个开始取到第XXX个字符。
    SELECT CHARSET(列名)from 表名;
    select CONCAT(列名,'     ',job)from 表名
    select UCASE(列名) from 表名
    select LCASE(列名) from 表名
    select left(列名,X) from 表名
    select replace(列名,X,XX) from 表名
    select replace(列名,XX,XXX) from 表名
    
    1. 数学相关函数:

      1. abs(sum)绝对值。
      2. ceiling()向上取整,得到比num2大的最小整数。
      3. floor()向上取整,得到比num2小的最大整数。
      4. format()保留小数位数。
      5. least()求最小值。
      6. mod()求余。