数据库(含CRUD)的操作

自己写了一篇数据库操作~~~(不包含聚合函数)

1.创建数据库
        语法:create database 数据库名;
2.查询当前所有的数据库
        show databases;
3.查询test35数据的建库语句
        show create database test35;
4.查询当前使用的数据库
        select database();
5.切换数据库
        use test 35;
6.创建表
        语法:create table 表名()
        创建数据表 表名
   create table stu(
            id int(11)  PRIMARY key auto_increment,
            name varchar(40) not null,
                 age int DEFAULT 18,
    sfzh varchar(18) UNIQUE
        )
7.查看当前表结构desc表名
        desc stu;
8.修改表结构 添加一列
        alter table 表名 add 列名 类型 约束;
9.修改表的类型或者约束
        alter table 表名 modify 列名 类型 约束;
10.修改表中列名
        alter table 表名 change 旧列名  新列名 类型 约束;
11.删除表中的列
        alter table 表名 drop 列名;
12.对表进行重命名
        rename table 旧表名 to 新表名
13.查看建表sql 
         show create table 表名;
14. 查看当前数据库中所有的表
        show tables;
15. 对表中的记录 进行 增删改  DML

  • 添加  insert into 表名(列名,列名)values (值,值)
  • 删除  delete from 表名 where 条件
  • 修改  update 表名 set 列名= 值 ,列名 = 值 where 条件

16.查看表中所有数据
        selsct*from 表名;
17.对已经存在的表进行数据导入
        insert into 新表名(列名,列名)select 原表列,原表列 from 原表名
18. 源表中的数据导入到一个新建表
        create table 新表名 select 原表列,原表列 from 原表名
19.查询name 重命名为姓名、班级ID  重命名班级编号
        select name as 姓名,班级ID 班级 from 表名
20. 指定列查询
        select 列名,列名 from 表名
21.重命名(列名的重命名)

  • select 列名 as 别名 ,列名 别名 from 表名
  • select 列名 别名 ,列名 别名 from 表名

22.去重(列中的数据去重)

  • select distinct 列名 from 表名;

23.查询商品名称为“花花公子”的商品所有信息:

  • select * from 表名 where 列名 = '花花公子'
  • select * from 表名 where 列名 like '花花公子'
  • select * from 表名 where 列名 in('花花公子');

24.查询价格为800商品

  • select * from 表名 where 列名 = 800;
  • select * from 表名 where 列名 like '800';
  • select * from 表名 where 列名 in(800);

25.查询价格不是800的所有商品

  • select* from 表名 where 列名 != 5000;
  • select * from 表名 where 列名 <> 5000;
  • select * from 表名 where 列名 not like '5000';
  • select * from 表名 where 列名 not in ('5000');

26.查询商品价格大于60元的所有商品信息

  • select * from 表名where 列名 >60

27.查询商品价格在200到1000之间所有商品

  • select * from 表名 where 列名 >= 200 and 列名 <=1000;
  • select * from 表名 where 列名 between 200 and 1000;

28.查询商品价格是200或800的所有商品

  • select * from 表名 where 列名= 200 or 列名 = 800;
  • select * from 表名 where 列名 in(200,800);

29.查询含有'霸'字的所有商品

  • select * from 表名 where 列名 like '%霸%'

30.查询以'香'开头的所有商品,含'香'的所有商品,以'香'结尾的所有商品

  • select * from 表名 where 列名 like '香%'
  • select * from 表名 where 列名 like '%香%'
  • select * from 表名 where 列名 like '%香'

31.查询第二个字为'想'的所有商品

  • select * from 表名 where 列名 like '_想%'

32.查询商品名称为3个字的所有商品,并且按照 商品价格进行降序排列

  • select * from 表名 where 列名 like '___' order by 列名 desc;

33. 查询所有商品 按照商品的分类进行降序排列,价格升序排列,

  • select * from 表名 order by 列名 desc,列名 asc;

34.商品没有分类的商品

  • select * from 表名 where 列名 is null;

35.查询有分类的商品

  • select * from 表名 where 列名 is not null;

36.单条数据分组

  • select 被分组的列 ,聚合函数 from 表名  group by 被分组的列 

37.多条数据分组

  • select 被分组的列 ,聚合函数 from 表名 where 条件  group by 被分组的列 

38. having 筛选的用法

  • select 被分组的列 ,聚合函数 from 表名where 条件  group by 被分组的列 having 筛选

查询万能公式:


select 被分组的列 ,聚合函数 from 表名where 条件  group by 被分组的列 having 筛选 Order by。。limit;

union all 查询两张表的结果集 --- 不会去重
union 查询两张表的结果集  --- 会去重
使用union all 查询的两张表字段数量,类型,顺序必须一致 

39.两表查询  内连接  方法一

        只可以查询两张有联系的数据
                语法:select 表一.字段名,表二.字段名
                                 from 表一名,表二名 
                                        where 表一.字段名 = 表二.字段名
两表查询 内连接  方法二
               语法: select 表名.字段名,表名.字段名
                               from 表一名 inner join 表二名
                                    on 表一.字段名 = 表二.字段名 

40.左外连接 可以查询出左表里面的所有数据(包括跟右表没有联系的数据)
                语法:select 表名.字段名,表名.字段名
                                 from 表一名 left join 表二名
                                         on 表一.字段名 = 表二.字段名
41. 右外连接 可以查询出右表里面的所有数据(包括跟左表没有联系的数据)
               语法:select 表名.字段名,表名.字段名
                                 from 表一名 left join 表二名
                                        on 表一.字段名 = 表二.字段名

42.多表联查语法   其中left 换成 inner 就是内连接 换成 right 就是右外连接
                语法:select 表名.字段名,表名.字段名.....
                                from 表名1
                                        left join 表名2 on 表名1.字段名 = 表名2.字段名
                                        left join 表名3 on 表名1.字段名 = 表名3.字段名

43.子查询

select 表名.字段名,表名.字段名.....  from 表名1 where  条件 in( select 表名.字段名 from 表名 where 条件='小双') ;

44.数学函数

  •  abs 取绝对值
  • truncate 保留几位小数并且不会四舍五入 直接截断
  • round(x) 返回整数 会四舍五入
  • round(x,y) 保留x后y位,会四舍五入
  • ceil(x) 向上取整
  • floor(x) 向下取整
  • rand()取随机数 填入数字后随机数对应固定值 取值范围是0-1
  • sign() 负数返回-1 0返回0 正数返回1
  • pow(x,y) 计算x值的y次方

45.字符串函数

  • char_length()计算字符串的字符数
  • length() 返回字符串的字节数 一个汉字三个字节 英文和数字占一个字节
  • concat() 将多个字符串连接成一个字符串 拼接字符串
  • concat_ws() 多个字符串之间加上第一个字符串
  • insert(x,y,z) 用z来替换x  y表示替换位置和替换个数
  • upper() 把所有的字母变为大写的
  • lower() 把所有的字母变为小写
  • left(x,y) 返回x字符串的y个字符 取前y个字符 截取字符串 (从前往后截取)从左往右
  • right(x,y) 返回x字符串的y个字符 取后y个字符 截取字符串 (从后往前截取)从右往左
  • lpad(x,y,z) 使z添加到x中达到y长度 添加到开头 拼接字符串 拼到最前面 拼接长度不够,会把 拼接的数据截掉 如果说长度达不到原数据字符串长度,原数据也会截掉。如果说长度 大于 原数据长度 + 拼接字符串长度 会重复 拼接数据 把长度占满
  • rpad(x,y,z) 使z添加到x中达到y长度 添加到末尾

46.日期函数

  • now() 返回服务器的当前时间 格式使yy-mm-dd hh:mm:ss
  • -- curtime() 获取时间 返回时分秒
  • curdate() 获取日期 返回年月日
  • timediff(x,y) 两个时间相减 只有时分秒
  • datediff(x,y) 两个日期相减 返回的是天数 日期中间用-和.都可以

47. 获取单独的年月日时分秒
    -- 获取年
    select now()
   写法一
    select extract(year from now())
   写法二
    select year(now())
    -- 获取月
   写法一
    select extract(month from now())
   写法二
    select month(now())
    -- 获取日
    写法一
    select extract(day from now())
    写法二
    select day(now())
    -- 获取时
    写法一
    select extract(hour from now())
    写法二
    select hour(now())
    -- 获取分
    select minute(now())
    -- 获取秒
    select second(now())
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值