SQL基础语法

         SQL(Structured Query Language)是一种用于管理和操作关系数据库的标准语言。本文将介绍SQL的四大基本操作:DDL(数据定义语言)、DML(数据操作语言)、DQL(数据查询语言)和DCL(数据控制语言)。

1. DDL(数据定义语言,Data Definition Language)

        DDL用于定义和管理数据库结构,包括创建、修改和删除数据库和表。(详细点的可以参考我的上篇,点传送门

数据库操作

-- 显示所有数据库
SHOW DATABASES;

-- 创建数据库
CREATE DATABASE mydatabase;

-- 使用数据库
USE mydatabase;

-- 显示当前使用的数据库
SELECT DATABASE();

-- 删除数据库
DROP DATABASE mydatabase;

表操作

-- 显示所有表
SHOW TABLES;

-- 创建表
CREATE TABLE staff (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    age INT
);

-- 查看表结构
DESC staff;

-- 显示创建表的SQL语句
SHOW CREATE TABLE staff;

-- 修改表结构
ALTER TABLE staff ADD address VARCHAR(50) COMMENT '家庭住址';
ALTER TABLE emp ADD worktime DATETIME COMMENT '入职时间';
ALTER TABLE emp RENAME TO staff;

-- 删除表
DROP TABLE staff;

 2. DML(数据操作语言,Data Manipulation Language)

DML用于对数据库中的数据进行增、删、改操作。

-- 插入数据
INSERT INTO staff (id, workid, name, gender, age, idcard, address, entrydate) VALUES
(1, 'W001', 'Alice', '女', 25, '123456789012345678', '北京', '2023-01-01 09:00:00');

-- 修改数据
UPDATE staff SET idcard = NULL WHERE id = 20;

-- 删除数据
DELETE FROM staff WHERE name = '小王';
DELETE FROM staff; -- 删除表中所有数据
-- DML 数据操作


# 给某一项插入数据
insert into tb_user (id, name, age, gender) values (001,'张三',18,'男');

select * from tb_user;

# 给全部项插入数据,注意顺序对应
insert into tb_user values (2,'李四',20,'男');

# 批量插入数据
insert into tb_user values
(3,'Jack',20,'男'),
(4,'赵敏',19,'女');

#修改数据
update tb_user set name = '小王' ,gender = '女' where id = 1;

# 删除数据
delete from tb_user where name = '小王';
delete from tb_user;#删除表中所有数据

insert into tb_user (id, name, age, gender)  values (1,'张三',18,'男');



 3. DQL(数据查询语言,Data Query Language)

DQL用于查询数据库中的数据。

基础查询

-- 查询指定列
SELECT name, gender, age FROM staff;

-- 查询所有列
SELECT * FROM staff;

-- 使用别名
SELECT address AS '工作地址' FROM staff;

-- 去重查询
SELECT DISTINCT address AS '工作地址' FROM staff;

 条件查询

-- 等值查询
SELECT * FROM staff WHERE age = 33;

-- 范围查询
SELECT * FROM staff WHERE age BETWEEN 20 AND 30;

-- 为空值查询
SELECT * FROM staff WHERE idcard IS NULL;

-- 复合条件查询
SELECT * FROM staff WHERE age <= 40 AND age >= 20;

-- 集合查询
SELECT * FROM staff WHERE age IN (18, 20, 35);

-- 模糊查询
SELECT * FROM staff WHERE name LIKE '_____';
SELECT * FROM staff WHERE idcard LIKE '%1';
 比较运算符
-- 大于
SELECT * FROM staff WHERE age > 30;

-- 大于等于
SELECT * FROM staff WHERE age >= 30;

-- 小于
SELECT * FROM staff WHERE age < 30;

-- 小于等于
SELECT * FROM staff WHERE age <= 30;

-- 等于
SELECT * FROM staff WHERE age = 30;

-- 不等于
SELECT * FROM staff WHERE age != 30;

-- 在某个范围之内
SELECT * FROM staff WHERE age BETWEEN 20 AND 30;

-- 在列表中的值
SELECT * FROM staff WHERE age IN (25, 30, 35);

-- 模糊匹配
SELECT * FROM staff WHERE name LIKE 'A%';

-- 是NULL
SELECT * FROM staff WHERE idcard IS NULL;
逻辑运算符
-- 并且
SELECT * FROM staff WHERE age > 20 AND gender = '男';

-- 或者
SELECT * FROM staff WHERE age > 30 OR gender = '女';

-- 非
SELECT * FROM staff WHERE NOT (age > 30);
聚合函数
-- 计数
SELECT COUNT(id) FROM staff;

-- 平均值
SELECT AVG(age) FROM staff;

-- 最大值
SELECT MAX(age) FROM staff;

-- 最小值
SELECT MIN(age) FROM staff;

-- 求和
SELECT SUM(age) FROM staff WHERE address = '西安';

分组查询

-- 按性别分组计数
SELECT gender, COUNT(*) FROM staff GROUP BY gender;

-- 按性别分组计算平均年龄
SELECT gender, AVG(age) FROM staff GROUP BY gender;

-- 按地址分组并筛选
SELECT address, COUNT(*) FROM staff WHERE age < 35 GROUP BY address HAVING COUNT(*) >= 3;

排序查询

-- 按年龄升序排序
SELECT * FROM staff ORDER BY age ASC;

-- 按入职日期降序排序
SELECT * FROM staff ORDER BY entrydate DESC;

-- 复合排序
SELECT * FROM staff ORDER BY age ASC, entrydate DESC;

分页查询

-- 查询前10条记录
SELECT * FROM staff LIMIT 0, 10;

-- 查询第11到第20条记录
SELECT * FROM staff LIMIT 10, 10;

4. DCL(数据控制语言,Data Control Language)

DCL用于控制数据库用户的访问权限。

用户管理

-- 创建用户
CREATE USER 'JJX'@'localhost' IDENTIFIED BY '052506';
CREATE USER 'jjx'@'%' IDENTIFIED BY '123456';

-- 修改密码
ALTER USER 'JJX'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

-- 删除用户
DROP USER 'JJX'@'localhost';

权限管理

-- 查询用户权限
SHOW GRANTS FOR 'jjx'@'%';

-- 授予权限
GRANT ALL ON itheima.* TO 'jjx'@'%';

-- 撤销权限
REVOKE ALL ON itheima.* FROM 'jjx'@'%';

这些sql基础语法是非常重要的,需要熟练掌握运用

5.图形化管理工具(GUI)

        在现代数据库管理中,图形化管理工具(GUI)变得越来越流行,毕竟不可能每天对着黑框框写数据库操作吧。这些工具提供了直观的界面,使数据库管理变得更加简单和高效。以下是一些流行的数据库图形化管理工具:

Navicat

        Navicat 是一款强大的数据库管理工具,支持多种数据库,包括MySQL、MariaDB、SQL Server、SQLite、Oracle和PostgreSQL等。

优点

  • 多数据库支持:可以同时管理多个不同类型的数据库。
  • 直观的用户界面:提供图形化的界面,操作简单直观。
  • 强大的功能:包括数据同步、数据传输、数据备份、查询构建器等。
  • 跨平台:支持Windows、macOS和Linux。

缺点

  • 收费软件:Navicat是商业软件,需要购买许可证。

DataGrip

        DataGrip 是由JetBrains开发的一款专业的数据库管理工具,支持多种数据库,包括MySQL、PostgreSQL、Oracle、SQL Server等。

优点

  • 智能SQL编辑器:提供代码补全、错误检测、代码重构等功能,提高开发效率。
  • 数据库导航:可以方便地浏览和管理数据库对象。
  • 数据导入导出:支持多种格式的数据导入导出。
  • 跨平台:支持Windows、macOS和Linux。

缺点

  • 收费软件:DataGrip是商业软件,需要购买许可证。

        选择一种适合自己的工具即可,当然还有其他的,我这里就简单介绍两种,如

MySQL Workbench,pgAdmin,DBeaver,HeidiSQL,phpMyAdmin,SQL Server Management Studio (SSMS),Toad for Oracle,DbVisualizer等等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值