mysql-SQL语法
细节查询:http://www.w3school.com.cn/sql/index.asp
1 DDL-data difinition lanuage数据定义语句
使我们有能力创建或删除表格,我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束:
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引
1.1 CREATE TABLE
1 2 3 4 | create table server_fun_categ ( ID int (11) key auto_increment, server_categ_name char (20) NOT NULL ) |
1 2 3 4 5 6 | create table server_app_categ( ID int (11) KEY auto_increment, server_categ_id int (11) NOT NULL , server_app_name char (30) NOT NULL , FOREIGN KEY (server_categ_id) REFERENCES server_fun_categ(ID) ) |
1 2 3 4 5 6 7 8 | create table server_list( server_name char (13) NOT NULL , server_wip char (15) NOT NULL , server_lip char (15) NOT NULL , server_op char (10) NOT NULL , server_app_id int (11) NOT NULL , FOREIGN KEY (server_app_id) REFERENCES server_app_categ(ID) )#为了设立自动运维平台,设计MySQL表,并定义好字段名,字段类型,字段约束。设定好主键,外键(存储引擎默认为innodb,字符集为latin1) |
1 2 3 4 5 6 7 8 9 10 | CREATE TABLE atm_acc( id int (10) auto_increment, username VARCHAR (100) NOT NULL , passwd VARCHAR (100) NOT NULL , PRIMARY KEY (id), UNIQUE KEY (id), UNIQUE KEY (username) ) #创建account表,id唯一且自增,username唯一。 # unique key (id,username)表示联合唯一,就是id必须唯一,但id不一样的时候username可以一样。 |
2 DML-data manipulation language数据操作语句
查询、更新、删除和插入指令构成了 SQL 的 DML 部分:
SELECT - 从数据库表中获取数据
UPDATE - 更新数据库表中的数据
DELETE - 从数据库表中删除数据
INSERT INTO - 向数据库表中插入数据
2.1 SELECT
2.1.1 条件查询
包含
1 | SELECT * FROM SvrConfig WHERE description LIKE '%redis%' |
等于、排序
1 | SELECT * FROM SvrConfig WHERE type = 68 ORDER BY subtype DESC |
限制
1 | SELECT * from GameRooms limit 0,1000 |
1 | SELECT * from GameRooms limit 1000,1000 |
在列表中
1 | SELECT * from SvrConfig where id in (100,101) limit 0,1000 |
2.1.2 多表查询
1 2 3 4 5 6 7 8 9 10 11 12 13 | SELECT GameRooms.roomname AS RoomName, GameRooms.roomid AS RoomID, Servers.ip AS ServerIP FROM GameRooms, SvrConfig, Servers WHERE GameRooms.appid = SvrConfig.id AND SvrConfig.svrid = Servers.id<br> # JOIN & KEY 。一个表的字段和另一个表的主键保持一致(字段名要不一样。) |
1 2 3 4 5 6 7 8 9 10 11 | SELECT GameRooms.roomid AS RoomID, GameRooms.roomname AS RoomName, SvrConfig.svrid AS ServerID FROM GameRooms JOIN SvrConfig ON GameRooms.appid = SvrConfig.id # INNER JOIN 。和上个查询功能一致 |
1 2 3 4 5 6 7 8 9 10 | SELECT SvrConfig.description, SvrConfig.gameid, Servers.ip, SvrConfig. dir FROM SvrConfig LEFT JOIN Servers ON SvrConfig.svrid = Servers. id WHERE SvrConfig.svrgroupid = 1000 #LEFT JOIN:得到A表的所有数据和满足条件的B表部分数据。 |
2.2 insert
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | INSERT INTO SvrConfig ( id, type, subtype, svrid, PORT, config, gameid, description, svrgroupid, active ) VALUES ( 3151, 68, 1004, 22, 10004, 'process=\'/data/\';Need=1;' , 40166, 'jabbok_test' , 5000, 1 ) #不是所有字段都要插入数据,所以把要插入的字段标出来。 #字符串要用 '' 单引号。如果字符串里面有单引号,就用\转义。 |
SQL函数
MAX(expr)
1 2 3 4 | SELECT MAX( id ) + 1 FROM SvrConfig #获取字段中的最大值,我要在字段中自动插入一个自增的数,就需要先获得max(column_name) |
CONCAT(str1,str2,...)
字符串连接
CAST(expr AS type)
数据类型转换
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | SELECT CONCAT( 'ip=' , Servers.ip, ';port=' , CAST (SvrConfig.`port` AS CHAR ), ';appid=' , Servers.localipmask, ';' ) FROM Servers,SvrConfig WHERE SvrConfig.type = 68 AND Servers.idcid = 0 AND SvrConfig.svrid = Servers.id#把两张表中的信息按照规则筛选出来,输出为一个 char 。 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee
· 用 DeepSeek 给对象做个网站,她一定感动坏了
· .NET 8.0 + Linux 香橙派,实现高效的 IoT 数据采集与控制解决方案
· DeepSeek处理自有业务的案例:让AI给你写一份小众编辑器(EverEdit)的语法着色文件