• 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 '张_';
  • 相关阅读:
    少走弯路,一个老程序猿谈PHP职业发展规划
    Wireshark网络分析就这么简单
    MySQL高可用架构之MHA
    一般项目的开发流程(公司之间是有差异)
    Java EE大作业之创造class类出现问题-------Implicit super constructor Object() is undefined for default constructor. Mu
    三层架构与MVC
    Android仿QQ界面
    Android之侧滑导航栏
    Android滑动删除功能
    资源链接
  • 原文地址:https://www.cnblogs.com/LZL-student/p/6002078.html
Copyright © 2020-2023  润新知