当前位置:Gxlcms > 数据库问题 > mysql

mysql

时间:2021-07-01 10:21:17 帮助过:1人阅读

table 表名 ADD 列名 INT NOT NULL

ALTER TABLE crm ADD phone INT NOT NULL;

技术图片

?

-- 一次添加多个属性

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;

技术图片

?

????

-- 添加属性到第一列

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

ALTER TABLE crm ADD id INT FIRST;

技术图片

?

?

-- 在指定的后面添加

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

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

desc crm;

技术图片

?

?

修改表名 rename

ALTER TABLE 表名RENAME 改为什么名;

ALTER TABLE crm RENAME test;

技术图片

?

?

?

?

技术图片

?

改表属性 modfly

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

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

技术图片

?

?

-- 修改列名 change

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

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

技术图片

?

  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;

技术图片

?

不规范做法

mysql> insert into stu values(1,‘zhang3‘,20,‘m‘,NOW());

mysql> insert into stu values(2,‘li4‘,21,‘f‘,NOW());

这样插入不规范,造成结果就是sid不自增,仍然要手动指定.那么怎么办呢,哟啊values前加字段 技术图片

?

  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. 不规范做法

因为没限定条件,所以全给改了

mysql> update stu set sgender=‘f‘;

?

技术图片

?

  1. 语法

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

  1. update环境

有内容

技术图片

?

  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并且指定条件

  2. 环境

表内容

技术图片

添加alax

mysql> insert into stu(sname,sage,sgender,cometime) values(‘alax‘,47,‘f‘,NOW());技术图片

  1. 示例1:

修改年龄为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‘) default1‘;

?

技术图片

?

现在不删除数据了把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 desc limit 10;

?

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

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

?

?

?

?

?

  1. 导库

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

?

?

mysql

标签:进入   开发   ons   aaa   mysq   信息   lin   index   pac   

人气教程排行