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

 

posted @   jabbok  阅读(275)  评论(0编辑  收藏  举报
编辑推荐:
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
阅读排行:
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee
· 用 DeepSeek 给对象做个网站,她一定感动坏了
· .NET 8.0 + Linux 香橙派,实现高效的 IoT 数据采集与控制解决方案
· DeepSeek处理自有业务的案例:让AI给你写一份小众编辑器(EverEdit)的语法着色文件
点击右上角即可分享
微信分享提示