zoukankan      html  css  js  c++  java
  • mysql语句

    mysql语句

    帐户    john5的博客

    CREATE TABLE student(

    sid INT,

    sname VARCHAR(20),

    sage TINYINT,

    sgender ENUM('f','m'),

    cometime DATETIME)

    CREATE TABLE stu(

    sid INT NOT NULL PRIMARY KEY AUTO_INCREMENT,

    sname VARCHAR(20) NOT NULL,

    sage TINYINT UNSIGNED,

    sgender ENUM('f','m') NOT NULL,

    cometime DATETIME NOT NULL) CHARSET utf8 ENGINE INNODB

    -- 学生名(只招3个字的) 班级 学号(不可重复,可自增) 成绩总分(整数) 字符gbk 存储myisam

    CREATE TABLE student_i (

        name CHAR(9) NOT NULL COMMENT '名字',

        class VARCHAR(20) NOT NULL COMMENT '班级',

        num INT NOT NULL PRIMARY key AUTO_INCREMENT COMMENT '学号',

        mark INT UNSIGNED NOT null COMMENT '成绩'

    )CHARSET gbk ENGINE myisam;

    CREATE TABLE crm (

        lname VARCHAR (20) NOT NULL COMMENT '课程名称',

        lcount INT PRIMARY KEY AUTO_INCREMENT COMMENT '课程节次',

        tname VARCHAR (20) NOT NULL COMMENT '老师名字',

        cdate DATETIME NOT NULL COMMENT'上课日期',

        1title VARCHAR (20) NOT NULL COMMENT '课程标题',

        hwtitle VARCHAR (20) COMMENT '作业标题',

        mark ENUM('A','B','C','D') COMMENT '成绩'

    )CHARSET utf8 ENGINE INNODB;

    -- alter table 表名 drop 列名 删除指定列名

    ALTER TABLE crm drop hwtitle;

    1. DDL

    -- 设计一个表 DDL定义语言, ddl 改 的是表属性

    1. -- 插入新的属性

    -- ALTER table 表名 ADD 列名 INT NOT NULL

    ALTER TABLE crm ADD phone INT NOT NULL;

    1. -- 一次添加多个属性

    ALTER TABLE 表名ADD qq INT NULL, ADD wechat VARCHAR(10) NOT NULL;

    ALTER TABLE crm ADD qq INT NULL, ADD wechat VARCHAR(10) NOT NULL;

    1. -- 添加属性到第一列

    ALTER TABLE 表名 ADD 添加的内容 INT FIRST;

    ALTER TABLE crm ADD id INT FIRST;

    1. -- 在指定的后面添加

    ALTER TABLE 表名ADD 要添加的东西 VARCHAR(50) AFTER 在谁后面加;

    ALTER TABLE crm    ADD address VARCHAR(50) AFTER tname;

    desc crm;

    1. 修改表名 rename

    ALTER TABLE 表名RENAME 改为什么名;

    ALTER TABLE crm RENAME test;

    1. 改表属性 modfly

    ALTER TABLE 表名MODIFY mark ENUM('A+','B+','C+','D+');

    ALTER TABLE test MODIFY mark ENUM('A+','B+','C+','D+');

    1. -- 修改列名 change

    ALTER TABLE    表名CHANGE mark aaa ENUM('A','B','C','D');

    ALTER TABLE    test CHANGE mark aaa ENUM('A','B','C','D');

    1. 删除表的 age

    alter table 表名 drop要删除的列;

    mysql> alter table t1 drop age;

    1. DCL

    mysql> mysql> show grants for root@'10.0.0.%';

    +---------------------------------------------------------------------------------------------------------------------+

    | Grants for root@10.0.0.% |

    +---------------------------------------------------------------------------------------------------------------------+

    | GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.0.0.%' IDENTIFIED BY PASSWORD '*FE28814B4A8B3309DAC6ED7D3237ADED6DA1E515' |

    +---------------------------------------------------------------------------------------------------------------------+

    1. 缩减权限

    mysql> revoke select on *.* from root@'10.0.0.%';

    Query OK, 0 rows affected (0.10 sec)

    mysql> show grants for root@'10.0.0.%';

    | GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES,

    LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE ON *.* TO 'root'@'10.0.0.%' IDENTIFIED BY PASSWORD '*FE28814B4A8B3309DAC6ED7D3237ADED6DA1E515' |+-------------------------------------------------------------------------------------------------------------

    1. DML

    2. insert 向表里插入内容

    mysql> desc stu;

    1. 语法

    insert into 表名 value(1,2,3,4) values()

    1. 示例1    插入1行

    mysql> insert into stu(sname,sage,sgender,cometime) values('wang5',30,'m',NOW());

    values前加字段,就自增了,这样做规范

    1. 示例2插入多行

    mysql> insert into oldboy.stu(sname,sage,sgender,cometime) values('oldboy',80,'f',NOW()), ('alax',47,'m',NOW());

    1. update 更新表内容

      1. 语法

    update 表名 set 列名=什么 where sid=1

    1. 示例1

    加入条件,这个条件最好是唯一的

    mysql> update stu set sgender='m' where sid=1;

    mysql> update stu set sgender='m' where sid=2

    或者

    mysql> update stu set sgender='m' where 1=1;

    1. update where or 或者指定条件

    2. 环境

    表内容是

    1. 语法

    update 表名 set 字段='m' where sid=1 or sid=4;

    1. 示例1

    修改为id是1或者是4的 sgender为f

    mysql> update stu set sgender='m' where sid=1 or sid=4;

    1. update 之 where and并且指定条件

    desc stu;

    1. 添加alax

    mysql> insert into stu(sname,sage,sgender,cometime) values('alax',47,'f',NOW());

    1. 示例1:

    2. 语法

    update 表名set sage=200 where sname='alax' and sid=8;

    修改年龄为200 条件是 sname=alax和sid=8的

    mysql> update stu set sage=200 where sname='alax' and sid=8;

    1. 示例2

    要改年龄为100 条件是 时间是121212 并且名字是alax的

    mysql> update stu set sage=100 where cometime='2019-02-27 12:12:12' and sname='alax';

    1. delete

    delete from 表名 where 指定行条件

    1. 环境

    mysql> insert into stu(sname,sage,sgender,cometime) values('alax',111,'f',NOW());

    mysql> insert into stu(sname,sage,sgender,cometime) values('alax',111,'f',NOW());

    1. 示例1 删除sid是10的

    删除id是10的

    mysql> delete from stu where sid=10;

    1. 清空表但是保留表结构

    truncate table stu;

    1. 伪删除

    mysql> select * from stu;

    给表加个枚举属性,1和0 默认值是1

    mysql> alter table stu add status enum('0','1') default '1';

    现在不删除数据了把status状态改成0

    update 修改表内容 status=0 suid是11的

    mysql> update stu set status='0' where sid=11;

    问题来了,开发怎么查呢 select 查询后面加where status=1的

    把代码写到程序里, 用户查询到是where 条件过滤完的

    mysql> select * from stu where status='1';

    可以很清楚的看到没有status=0 的数据了,这就是伪删除

    1. DQL

    -- show tables from 那个库 == use + 库 show databases;

    show tables from world;

    -- 查看表是怎么建的

    show create table city;

    -- 查看库创建信息

    show create database world;

    -- 字符集

    show charset;

    -- 查看支持的所以存储引擎

    show engines;

    -- 模糊查看lock相关的状态信息

    show status like '%lock%';

    -- 查看mysql客户端连接情况

    show collation;    

    show processlist;

    查看主库状态

    show master status G

    show save status G

    1. 练习

    city

    -------------+

    城市序号ID

    城市名称Name

    国家代号 CountryCode

    市所在的省District

    城市人口 Population

    +-------------+

     

     

    1. 查看有什么库

    mysql> show databases;

    +--------------------+

    | Database |

    +--------------------+

    | information_schema |

    | mysql |

    | oldboy |

    | performance_schema |

    | world |

    +--------------------+

    5 rows in set (0.00 sec)

    1. 进入world库

    mysql> use world;

    Database changed

    1. 查看有什么表 ,发现有3张表

    mysql> show tables;

    +-----------------+

    | Tables_in_world |

    +-----------------+

    | city |

    | country |

    | countrylanguage |

    +-----------------+

    3 rows in set (0.00 sec)

    1. 查看下表属性,发现有5列

    mysql> desc city;

    +-------------+----------+------+-----+---------+----------------+

    | Field | Type | Null | Key | Default | Extra |

    +-------------+----------+------+-----+---------+----------------+

    | ID | int(11) | NO | PRI | NULL | auto_increment |

    | Name | char(35) | NO | | | |

    | CountryCode | char(3) | NO | MUL | | |

    | District | char(20) | NO | | | |

    | Population | int(11) | NO | | 0 | |

    +-------------+----------+------+-----+---------+----------------+

    mysql> select * from city where id < 3;

    +----+----------+-------------+----------+------------+

    | ID | Name | CountryCode | District | Population |

    +----+----------+-------------+----------+------------+

    1. 查询国家是中国河北省所以城市的信息

    mysql> select * from city where countrycode='chn' and district='hebei';

    +------+--------------+-------------+----------+------------+

    | ID | Name | CountryCode | District | Population |

    +------+--------------+-------------+----------+------------+

    | 1907 | Shijiazhuang | CHN | Hebei | 2041500 |

    | 1924 | Tangshan | CHN | Hebei | 1040000 |

    | 1928 | Handan | CHN | Hebei | 840000 |

    查询中国或者美国的国家

    select * from city where countrycode in ('chn','usa');

    like 模糊查询

    查询 country 代码是 ch开头的

    mysql> select * from city where countrycode like'ch%';

    -- 查询以CH开头的国家城市信息                 grep '^CH'

    SELECT * from city WHERE countrycode LIKE 'CH%'

    -- 查询以HA结尾的国家城市信息                  grep 'HA$'

    SELECT * from city WHERE countrycode LIKE '%HA'

    SELECT * from city WHERE countrycode LIKE '%HA%'

    -- 注意: CH%可以出现, %HA或者%H%尽量少出现

    -- 取列

    -- 获取city表中, name和population 两列的数据

    SELECT name,Population FROM city;

    -- 查询中国城市中人口数量大于1000w的城市

    SELECT * FROM city WHERE countrycode='chn' AND population > 10000;

    -- 查询中国城市中人口数量小于1000w的城市

    SELECT * FROM city WHERE population < 100;

    -- 世界上人口最多的城市 ORDER BY 基于 population的列 从到小排序

    SELECT * FROM city ORDER BY Population desc;

    -- 世界上人口数量前10名的城市信息        limit 10

    SELECT * FROM city ORDER BY Population desc limit 10;

    1. slelect 详解

    语法:

    select 列 from 表 where 条件

    1. 等值条件

    例子:

    select * from city where countrycode='chn' and district='hebei'

    select * from city where countrycode='chn' unioq select * from city where countrycode='usa'

    等值查询:查询数据比较精准, 结果集较小

    1. 范围查询

    select * from city where countrycode='chn' or countrycode='usa';

    select * from city where countrycode in ('chn','usa');

    > , >= ,< ,<= ,<> !=

    select * from city where population > 50000;

    select * from city where population like 'CH%';

    select * from city where population >10000 and population <50000; = select * from city where population between 10000 and 50000;

    1. order by 正序 和linmit 排序

    从大到小排序并限制查询前10行

    select * from city where countrycode='chn' order by population limit 10;

    limit N,M 跳过N行显示M行

    select * from city where countrycode='chn' order by population desc limit 10,20;

    1. desc 倒序

    select * from 表名 where 条件 order by 条件 desc limit 10

    select * from city where countrycode='chn' order by population desc limit 10;

    查询人口最多的家

    mysql> select * from city order by population desc limit 1 ;

    1. 多条件查询

    select name,population from city where countrycode='chn' and district='heilongjiang';

    1. 导库

    mysql -uroot -poldboy123 test < /root/wordl.sql

    mysql> select * from t1;

    +------+--------+

    | sid | sname |

    +------+--------+

    | 1 | zhang3 |

    | 2 | li4 |

    | 3 | wang5 |

    +------+--------+

    3 rows in set (0.00 sec)

    mysql> select * from t2;

    +------+-------+

    | sid | smark |

    +------+-------+

    | 1 | 50 |

    | 2 | 60 |

    | 3 | 70 |

    +------+-------+

    3 rows in set (0.00 sec)

    mysql> select t1.sname,t2.smark from t1,t2 where t1.sid=t2.sid and sname= 'zhang3';

    +--------+-------+

    | sname | smark |

    +--------+-------+

    | zhang3 | 50 |

    +--------+-------+

    1 row in set (0.01 sec)

    mysql> select t1.sname,t2.smark from t1,t2 where t1.sid=t2.sid and sname= 'li4';

    +-------+-------+

    | sname | smark |

    +-------+-------+

    | li4 | 60 |

    +-------+-------+

    1 row in set (0.00 sec)

  • 相关阅读:
    spring+hibernate 整合异常 Class 'org.apache.commons.dbcp.BasicDataSource' not found
    ExtJS+SpringMVC文件上传与下载
    没有权限角色管理功能菜单加载
    java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java he
    js 验证input 输入框
    目录结构
    文件权限命令 linux
    Java 代码完成删除文件、文件夹操作
    js 获取时间不能大于当前系统时间
    hibernate createQuery和createSQLQuery 查询结果count计算
  • 原文地址:https://www.cnblogs.com/john5yang/p/10452263.html
Copyright © 2011-2022 走看看