zoukankan      html  css  js  c++  java
  • MySQL 基础语句的练习

      1 -- *** ①、对数据库的操作  *** --
      2 
      3 
      4 -- 查看所有的数据库
      5 SHOW DATABASES;
      6 
      7 -- 创建数据库
      8 CREATE DATABASE day1026
      9 DEFAULT CHARACTER SET utf8;
     10 
     11 -- 查看该数据库的所有表
     12 SHOW TABLES;
     13 
     14 -- 使用刚建的数据库
     15 USE day1026;
     16 
     17 
     18 
     19 -- *** ②、对表的操作  *** --
     20 
     21 -- 创建表
     22 CREATE TABLE personnel
     23 (
     24     id INT,
     25     NAME VARCHAR(20),
     26     gender VARCHAR(2),
     27     birthday DATE,
     28     email VARCHAR(10),
     29     remark VARCHAR(50)
     30 );
     31 
     32 -- 查看指定表的结构
     33 DESC personnel;
     34 
     35 -- 修改表的名称
     36 ALTER TABLE personnel RENAME TO teachr;
     37 ALTER TABLE teachr RENAME TO personnel;
     38 
     39 
     40 -- *** ③、对列的操作  *** --
     41 
     42 -- 在表中增加列
     43 ALTER TABLE personnel ADD COLUMN age VARCHAR(3);
     44 
     45 -- 修改列的长度
     46 ALTER TABLE personnel MODIFY remark VARCHAR(50);
     47 
     48 -- 删除列
     49 ALTER TABLE personnel DROP COLUMN remark;
     50 
     51 -- 修改列的名称
     52 ALTER TABLE personnel CHANGE NAME username VARCHAR(20);
     53 
     54 
     55 
     56 -- *** ④、对数据的操作  *** --
     57 
     58 -- (为了方便,另外创建个少列的表)
     59 CREATE TABLE person(
     60     id VARCHAR(20),
     61     NAME VARCHAR(10),
     62     age INT,
     63     sex VARCHAR(5)
     64 );
     65 
     66 DESC person;
     67 
     68 -- ④.1:添加数据 (按照顺序插入所有字段)
     69 INSERT INTO person VALUES(1,'张三',20,'');
     70 -- 添加数据 (部分数据)
     71 INSERT INTO person (id,NAME,age) VALUES (2,'李四',21);
     72 INSERT INTO person (NAME)VALUES ('王五');
     73 
     74 -- 修改数据(所有数据,建议少用)
     75 UPDATE person SET sex = '';
     76 
     77 -- 修改指定的数据(推荐使用)
     78 UPDATE person SET sex = '' WHERE id = 1; -- 把id为1那位的性别改为男
     79 
     80 -- 修改多个字段,注意: SET 字段名=值,字段名=值,....
     81 UPDATE person SET sex = '' ,age = 20 WHERE NAME = '王五';
     82 -- 把王五的性别改为男,年龄改为20
     83 
     84 -- ④.2、删除数据
     85 
     86 -- 删除数据(所有的数据,少用)
     87 DELETE FROM person;
     88 
     89 -- 带条件的删除(推荐使用)
     90 DELETE FROM person WHERE id = 1;
     91 
     92 -- 另一种删除方式(全部删除)
     93 TRUNCATE person;
     94 
     95 -- delete from:  1)可以全表删除 ,可以带条件删除  2)只能删除表的数据,不能删除表的约束     3)使用delete from删除的数据可以回滚(事务)
     96 -- truncate table:  1)可以全表删除,不能带条件删除 2)即可以删除表的数据,也可以删除表的约束 3)使用truncate table删除的数据不能回滚
     97 TRUNCATE TABLE student;
     98 
     99 -- 建立一个带有自增长的数据的表
    100 CREATE TABLE test(
    101     id INT PRIMARY KEY AUTO_INCREMENT,-- 自增
    102     NAME VARCHAR(10)
    103 );
    104 -- 添加数据,但不添加id的
    105 INSERT INTO test (NAME) VALUES('张三');
    106 INSERT INTO test (NAME) VALUES('李四');
    107 -- 可以发现,自动赋予id且自增 1、2 
    108 -- 如果用delete from 删除,再进行添加数据,那么id会为3,也就是回滚,数据可以恢复的
    109 -- 如果是用truncate 删除,再进行添加数据,那么id从1开始,无法回滚,数据无法恢复
    110 
    111 -- 查看所有列的数据
    112 SELECT *FROM person;
    113 SELECT *FROM test;
    114 
    115 
    116 -- *** ⑤、查询数据  *** --
    117 
    118 -- 5.1 查询所有列
    119 SELECT *FROM person;
    120 
    121 -- 5.2 查询指定列
    122 SELECT id,NAME FROM person;
    123 
    124 -- 5.3、查询时可以指定别名 (表的别名不能是字符串)
    125 -- 注意:在多表查询时经常使用表的别名
    126 SELECT id AS '身份证', NAME AS '姓名' FROM person AS s; 
    127 -- 使用了别名后,就可以用别名来查询它的数据
    128 
    129 -- 5.4、查询时添加常量列
    130 -- 需求:在查询person表时,添加一列住址列:内容为“中国”
    131 SELECT id,NAME,age,sex,'中国' AS China FROM person;
    132 
    133 -- 5.5、查询时合并列
    134 -- 首先给这个表创建2个列,以便示范
    135 ALTER TABLE person ADD java INT ,ADD c INT; 
    136 UPDATE person SET java = 80, c = 80 WHERE id = 2;
    137 -- 查询每个人的java和c的总成绩
    138 SELECT id,NAME,(java+c) AS '总成绩' FROM person;
    139 -- 注意:合并列只能合并数值类型的字段
    140 
    141 -- 5.6、查询时去除重复记录
    142 SELECT sex FROM person; -- 这样的话,会列出女、男、男这样的数据
    143 -- 需求: 查询数据内有什么性别
    144 -- 方法1:
    145 SELECT DISTINCT sex FROM person; -- 如果数据内只有男,则只显示1个男,如果男女都有,则显示两个:男、女
    146 -- 方法2:查询有什么年龄
    147 SELECT DISTINCT (age) FROM person;
    148 
    149 -- 5.7、条件查询 (where)
    150 
    151 -- 5.7.1 逻辑条件: and(与) or(或)
    152 
    153 --  and(与):查询id为2,姓名为李四的人的信息
    154 SELECT * FROM person WHERE id = 2 AND NAME = '李四';
    155 
    156 --  or(或):查询id为1,或者姓名是张三的人的信息
    157 SELECT * FROM person WHERE id = 2 OR NAME = '张三';
    158 
    159 
    160 -- 5.7.2 比较条件: > 、< 、>= 、<= 、<>(不等于)、between and
    161 
    162 -- 查询java成绩大于等于80,且小于等于90的人
    163 SELECT * FROM person WHERE java >=80 AND java <= 90;
    164 -- 另外一种语法
    165 SELECT * FROM person WHERE java BETWEEN 80 AND 90;-- 包左包右
    166 
    167 
    168 -- 查询不是男的0的人
    169 SELECT * FROM person WHERE sex <>'';
    170 
    171 
    172 -- 5.7.3 判空条件:(null 空字符串): is null / is not null / =='' / <>''
    173 -- null 和 空字符串 的区别:
    174 -- null:没有值
    175 -- 空字符串:有值,是空字符串
    176 
    177 -- 查询性别为null的人(当时没赋值)
    178 SELECT * FROM person WHERE sex IS NULL;
    179 
    180 -- 查询性别为空字符串的人
    181 SELECT * FROM person WHERE sex IS '';
    182 
    183 SELECT * FROM person WHERE sex IS NULL OR sex IS '';
    184 
    185 -- 查询填写了性别的人(非null和非空)
    186 SELECT * FROM person WHERE sex IS NOT NULL AND sex <>'';
    187 
    188 
    189 -- 5.7.4 模糊条件:like
    190 -- 通常使用这些替换标识符:
    191 -- %:替换任意个数字符 
    192 -- _:替换一个字符
    193 
    194 -- 查询姓‘张’的人
    195 SELECT * FROM person WHERE NAME LIKE '张%';
    196 
    197 -- 查询姓‘李’并且姓名只有两个字的人
    198 SELECT * FROM person WHERE NAME LIKE '张_';
  • 相关阅读:
    Java异常处理和设计
    一次qps测试实践
    Alternate Task UVA
    Just Another Problem UVA
    Lattice Point or Not UVA
    Play with Floor and Ceil UVA
    Exploring Pyramids UVALive
    Cheerleaders UVA
    Triangle Counting UVA
    Square Numbers UVA
  • 原文地址:https://www.cnblogs.com/LZL-student/p/6002078.html
Copyright © 2011-2022 走看看