zoukankan      html  css  js  c++  java
  • mysql基础小结

    基础操作

     1 # 选择数据库
     2 show databases; 
     3 
     4 # 创建temp库,utf8
     5 create database temp character set utf8;
     6 
     7 # 选择temp库
     8 use temp;
     9 
    10 # 创建students表
    11 CREATE TABLE students (
    12     id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, # 学生id,int整数型列,
    13     # unsigned无符号从零开始修饰符有符号是负数到正数
    14     # notnull不许为空,因为id后边要作为primary key,主键不可为空,如果不指定该属性,默认可为空
    15     # auto_increment自增长
    16     name CHAR(8) NOT NULL,# char
    17     sex CHAR(4) NOT NULL,
    18     age TINYINT UNSIGNED NOT NULL,
    19     tel CHAR(13) NULL DEFAULT '-' #默认值为空,不想为空指定为——
    20 );
    21 
    22 # 增加address列students
    23 alter table students add address char(60); 
    24 
    25 # age 列后插入
    26 alter table students add birthday date after age;
    27 
    28 # 删除birthday
    29 alter table students drop birthday;
    30 
    31 # tel列 重命名为 telphone
    32 alter table students change tel telphone char(13) default "-";
    33 
    34 # name列 数据类型修改为 char(16)
    35 alter table students change `name` `name` char(16) not null; 
    36 
    37 # 删除 birthday 列
    38 alter table students drop birthday;
    39 
    40 # 重命名 students 表为 workmates
    41 alter table students rename workmates; 
    42 
    43 # 查看表
    44 show tables;
    45 
    46 # 查看表信息
    47 describe workmates;
    48 describe students;
    49 # 删除 students 表
    50 drop table workmates;
    51 
    52 # 删除 temp53 drop database temp;

    查询语句

      1 # 选择数据库
      2 use credit;
      3 
      4 # 查询语句
      5 SELECT * FROM user_info limit 20;
      6 
      7 SELECT user_id,occupation FROM user_info limit 20;
      8 
      9 SELECT * FROM user_info 
     10 where sex=1 and (education=1 or marriage=1) 
     11 limit 20;
     12 
     13 # 插入语句
     14 insert into user_info values ('A10','1','1','1','1','1');
     15 insert into user_info(user_id,sex) values ('A10','1');
     16 
     17 # 记录更新
     18 set sql_safe_updates = 0;
     19 update user_info set occupation='2',education = '2' 
     20 where user_id = 'A10';
     21 
     22 # 删除记录
     23 delete from user_info where user_id = 'A10';
     24 # delete from user_info; # 删除user_info表所有记录
     25 
     26 # 排序
     27 select * from user_info order by user_id;
     28 select * from user_info order by user_id asc; # 升序排列
     29 select * from user_info order by user_id desc; # 降序排列
     30 select * from user_info order by sex desc,education desc;
     31 select * from user_info where sex = 1 order by user_id;
     32 
     33 # 分组
     34 SELECT 
     35     user_id, AVG(trans_amount)
     36 FROM
     37     bank_detail
     38 GROUP BY user_id;
     39 
     40 SELECT 
     41     user_id,trans_type, AVG(trans_amount) trans_amount_avg
     42 FROM
     43     bank_detail
     44 GROUP BY user_id,trans_type;
     45 
     46 # 空值
     47 select * from user_info where sex is null;
     48 select * from user_info where sex is not null;
     49 
     50 # 模糊匹配
     51 select * from user_info where user_id like '278%'; # user_id以278开头 
     52 select * from user_info where user_id like '%278%'; # user_id包含278 
     53 select * from user_info where user_id like '%278'; # user_id以278结尾
     54 
     55 # 正则匹配
     56 SELECT * FROM user_info WHERE user_id REGEXP '^278'; # user_id以278开头
     57 select * from user_info where user_id like '278%';
     58 
     59 # 内连接
     60 SELECT user_info.user_id,# 查询用户表里的
     61        sex,
     62        trans_amount
     63 FROM user_info,bank_detail #两个表中都有要查询的字段
     64 WHERE user_info.user_id = bank_detail.user_id;# 连接条件两张表上的用户ID保持一致
     65 
     66 select count(*) from (
     67 SELECT user_info.user_id,
     68        sex,
     69        trans_amount
     70 FROM user_info,bank_detail 
     71 WHERE user_info.user_id = bank_detail.user_id) a;
     72 
     73 # 左连接
     74 select count(*) from (
     75 SELECT 
     76     user_info.user_id, sex, trans_amount
     77 FROM
     78     user_info
     79         LEFT JOIN
     80     bank_detail ON user_info.user_id = bank_detail.user_id) a;
     81 
     82 # 右连接
     83 SELECT 
     84     user_info.user_id, sex, trans_amount
     85 FROM
     86     user_info
     87         RIGHT JOIN
     88     bank_detail ON user_info.user_id = bank_detail.user_id;
     89 
     90 
     91 # 自定义函数
     92 DROP FUNCTION if exists standardize;
     93 
     94 DELIMITER $
     95 CREATE FUNCTION standardize(x float,y int) 
     96 RETURNS float
     97 BEGIN
     98 DECLARE a float;
     99 SET  a = x/5;
    100 RETURN a+y;
    101 END $
    102 DELIMITER ;
    103 
    104 select standardize(3.2,3);
    105 
    106 SELECT 
    107     STANDARDIZE(trans_amount,1)
    108 FROM
    109     bank_detail;
    110 
    111 # 存储过程
    112 drop procedure if exists info;
    113 
    114 delimiter $ 
    115 create procedure info(uid int) 
    116 begin 
    117 select * from user_info where user_id = uid; 
    118 end $ 
    119 delimiter ; 
    120 
    121 call info(10);
    122 
    123 # 重复数据
    124 SELECT 
    125     user_id, COUNT(*) AS repetitions
    126 FROM
    127     bank_detail
    128 GROUP BY user_id
    129 HAVING repetitions > 1;
    130 
    131 # 过滤重复
    132 select count(*) from
    133 (select * from bank_detail
    134 group by user_id,trans_amount) a;
  • 相关阅读:
    关于JEE web项目 Servlet中 “/” 的解释 ;
    通过session 怎么防止表单的重复提交!
    Struts hibernate Spring 框架原理
    apache DBUtils 使用例子demo
    二十三种设计模式通俗理解
    怎样将一个脚本添加到开机自启动中
    zabbix
    数据库
    nginx服务器
    Luogu P3398 仓鼠找sugar
  • 原文地址:https://www.cnblogs.com/keepgoingon/p/7088989.html
Copyright © 2011-2022 走看看