SQL 基础语句

这篇具有很好参考价值的文章主要介绍了SQL 基础语句。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SQL 基础语句

SQL 基础语句

DDL

  • Data Definition Language 数据定义语言
  • 创建 create
  • 删除 drop
  • 修改 alter
  • 清空 truncate
show tables ; --查看所有表:    
drop database db1;  --删除数据库    
create database db1 default character set utf8; --创建数据库    
use database; --选择数据库
create table t1(id int(3),name varchar(20));-- 创建表
desc t1--查看表
insert into t1 values(1,'user1'); -- 插入数据
alter table t1 add(age int(3)); --添加表字段语句  
alter table t1 drop id; -- 删除表字段语句  
alter table t1 modify age varchar(2); -- 修改表字段类型格式  
alter table t1 change age p1age int(3); -- 修改表字段名称  
alter table t1 rname per; -- 修改表名
truncate table t1; -- 清空表结构  
drop table t1; -- 删除表结构



DML

  • Data Manipulation Language 数据操纵语言
  • insert 插入数据入表
  • delete 删除数据
  • update 修改数据

实例

use db1;

create table tb1(
id int,
name varchar(20),
birth date,
address varchar(50)
);

#插入数据
insert into tb1 (id,name,address)values(102,'rose','beijing')

# 删除表tb1中的所有数据。
delete from tb1;
# 删除表中tb1中的id为101的记录。
delete from tb1 where id=101;
# 删除表tb1中 id为102和地址为上海的的数据
select * from tb1;
delete from tb1 where id=102 and address='shanghai';

update tb1 set address='english',name='micheal' where id=102;
# 将生日为 null 的记录的 name 改为 'general'
update tb1 set name='general' where birth is null;
# 将 id 为 101 的 birth 改为'2000-8-8';
update tb1 set birth = '2000-8-8' where id = 101;

DQL

数据查询语言

select子句  from子句     select colName[,colName.......]  from tablname;
select 列名1 as "要起的名" [, 列名2 as "要起的名" ,... ]  from tablname;

实例

#创建信息表
create table tb2 (
id int(5),
name VARCHAR(10),
job VARCHAR(9),
mgr int(4),
hiredate DATE,
sal int(7),
comm int(7),
deptid int(2)
);


#添加数据
insert into tb2 (id,name,job,mgr,hiredate,sal,comm,deptid) values
(7369 ,'SMITH','CLERK',7902,'1980-12-17',800,NULL,20),
(7499 ,'qfedu','SALESMAN' , 7698 , '1981-2-10' ,  1600 , 300 , 30),
(7521 ,'WARD', 'SALESMAN' , 7698,  '1981-2-22' ,  1250 , 500 , 30),
(7566 ,'JONES','MANAGER' ,  7839,  '1981-4-2' ,  2975 , NULL , 20),
(7654 ,'MARTIN','SALESMAN' , 7698,  '1981-9-28',   1250 , 1400 , 30),
(7698 ,'BLAKE','MANAGER' ,  7839 , '1981-5-1' ,   2850 , NULL , 30),
(7782 ,'CLARK','MANAGER' ,  7839 , '1981-6-9' ,   2450 , NULL , 10),
(7788 ,'SCOTT','ANALYST' ,  7566,  '1987-4-19',   3000 , NULL , 20),
(7839 ,'KING','PRESIDENT' ,NULL,  '1981-11-17',  5000 , NULL , 10),
(7844 ,'TURNER','SALESMAN' , 7698,  '1981-9-8',    1500 , 0   ,  30),
(7876 ,'ADAMS','CLERK' ,   7788 , '1987-5-23',   1100,  NULL , 20),
(7900 ,'JAMES','CLERK' ,    7698 , '1981-12-3',   950 ,  NULL , 30),
(7902 ,'FORD','ANALYST' ,  7566 , '1981-12-3' ,  3000 , NULL , 20),
(7934 ,'MILLER','CLERK',     7782 , '1982-1-23',   1300 , NULL , 10),
(8002 ,'IRONMAN','MANAGER',   7839 , '1981-6-9',    1600, NULL , 10),
(8003 ,'SUPERMAN','MANAGER',   7839 , '1981-6-9',    1600 , NULL , NULL);


#查询 员工姓名 职位 入职时间 所在部门
select name, job, hiredate, deptid
from tb2 limit 5;

SMITH,CLERK,1980-12-17,20
qfedu,SALESMAN,1981-02-10,30
WARD,SALESMAN,1981-02-22,30
JONES,MANAGER,1981-04-02,20
MARTIN,SALESMAN,1981-09-28,30


#查询 姓名 职位 分别起别名
select name as "姓名", job as "职位"
from tb2

# 查询员工表中部门号为 10 和 20 的员工的编号,姓名,职位,工资
select id, name, job, sal
from tb2
where deptid = 10
   or deptid = 20;
   
# 查询员工表中部门号不是 10 和 20 的员工的所有信息。
select *
from tb2
where deptid <> 10
  and deptid <> 20;
  
# 查询员工姓名中有a和s的员工信息。
select name
from tb2
where name like '%a%'
  and name like
      '%s%';
select name
from tb2
where name like '%a%s%'
   or name like
      '%s%a%';
      
      


DCL

DataControlLanguage,数据控制语言,用于创建用户,给用户授权,撤销权限,删除用户。

#创建用户
create user username@ip identified by newPwd;

create user 'mysql'@'192.168.1.128' identified by 'Rkun18.mysql';

#显示用户权限
show grants for username@ip;

mysql> show grants for mysql@192.168.1.128;
+-----------------------------------------------+
| Grants for mysql@192.168.1.128                |
+-----------------------------------------------+
| GRANT USAGE ON *.* TO 'mysql'@'192.168.1.128' |
+-----------------------------------------------+


授权

  • DML权限:insert,delete,update
  • DQL权限:select
  • DDL权限:create,alter,drop…
grant 权限1,权限2... on 数据库名.* to username@ip;

grant select,drop,insert on db1.* to 'mysql'@'192.168.1.128';

mysql> show grants for mysql@192.168.1.128;
+------------------------------------------------------------------+
| Grants for mysql@192.168.1.128                                   |
+------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'mysql'@'192.168.1.128'                    |
| GRANT SELECT, INSERT, DROP ON `db1`.* TO 'mysql'@'192.168.1.128' |
+------------------------------------------------------------------+



#撤销权限
revoke 权限1,权限2..on 数据库名.* from username@ip;


mysql> revoke drop on db1.* from mysql@192.168.1.128;
Query OK, 0 rows affected (0.00 sec)

mysql> show grants for mysql@192.168.1.128;
+------------------------------------------------------------+
| Grants for mysql@192.168.1.128                             |
+------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'mysql'@'192.168.1.128'              |
| GRANT SELECT, INSERT ON `db1`.* TO 'mysql'@'192.168.1.128' |
+------------------------------------------------------------+


#删除用户 不同版本mysql可能格式上不相同 注意
drop user 'username'@'192.168.1.128';
#查看现有用户
use mysql;
select Host,User from user;

%,root
192.168.1.128,mysql
localhost,mysql.session
localhost,mysql.sys
localhost,rkun18
localhost,root

drop user 'mysql'@'192.168.1.128';

mysql> select Host,User from user;
+-----------+---------------+
| Host      | User          |
+-----------+---------------+
| %         | root          |
| localhost | mysql.session |
| localhost | mysql.sys     |
| localhost | rkun18        |
| localhost | root          |
+-----------+---------------+

#刷新权限
flush privileges;

MySQL数据导入 导出

导出数据库

mysqldump -h IP -u 用户名 -p -d 数据库名 > 导出的文件名


#导出所有数据

[root@mysql ~]#  mysqldump -uroot -pRkun18.mysql --all-databases > /data/mysql.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
[root@mysql ~]# ll /data/mysql.sql 
-rw-r--r--. 1 root root 891320 6月  12 17:35 /data/mysql.sql

#导出数据库信息
mysqldump -uroot -pRkun18.mysql --databases db1 > 
/data/db1.sql


#导出某张表
mysqldump -uroot -pRkun18.mysql mysql user >/data/user.sql


导入数据库文章来源地址https://www.toymoban.com/news/detail-497763.html

#远程登录并进入数据库
mysql -h192.168.1.128 -uroot -pRkun18.mysql

-h:表示host地址,本地直接使用localhost,远程需要使用ip地址
-u:表示user用户
-p:表示password密码

#先把db1里的tb2表导出
[root@mysql data]# mysqldump -uroot -pRkun18.mysql db1 tb2 > /data/tb2.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
[root@mysql data]# ll
总用量 4
-rw-r--r--. 1 root root 2873 6月  12 18:00 tb2.sql


#删除tb2
use db1;
drop table tb2;
#查看表 只有tb1
mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| tb1           |
+---------------+

#导入数据
mysql> source /data/tb2.sql

mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| tb1           |
| tb2           |
+---------------+

#查看数据
mysql> select * from tb2 limit 5;
+------+--------+----------+------+------------+------+------+--------+
| id   | name   | job      | mgr  | hiredate   | sal  | comm | deptid |
+------+--------+----------+------+------------+------+------+--------+
| 7369 | SMITH  | CLERK    | 7902 | 1980-12-17 |  800 | NULL |     20 |
| 7499 | qfedu  | SALESMAN | 7698 | 1981-02-10 | 1600 |  300 |     30 |
| 7521 | WARD   | SALESMAN | 7698 | 1981-02-22 | 1250 |  500 |     30 |
| 7566 | JONES  | MANAGER  | 7839 | 1981-04-02 | 2975 | NULL |     20 |
| 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250 | 1400 |     30 |
+------+--------+----------+------+------------+------+------+--------+

#再次删除tb2 退出mysql

#不登陆导入数据库
 mysql -uroot -pRkun18.mysql db1 < /data/tb2.sql
 
 

到了这里,关于SQL 基础语句的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SQL Server基础-SQL语句

    --1、  创建TestDB数据库 create database TestDB; --2、  查看TestDB数据库是否存在 IF EXISTS (SELECT 1 FROM SYSDATABASES WHERE NAME=\\\'TestDB\\\') SELECT 1 ELSE SELECT 0; --3、  在TestDB数据库创建stuInfo学生表,字段:stuSeat座位号,stuName姓名,stuNo学号,stuAge年龄,stuID身价证号码,stuAddress住址

    2024年02月07日
    浏览(75)
  • 【SQL基础】SQL增删改查基本语句

    增删改查是一个数据操作工具最基本的命令,在SQL中,这四种语句主要由以下语句执行: 增:insert 删:delete 改:update 查:select 功能:SELECT 语句用于从数据库中选取数据。 结果:选取结果被存储在一个结果表中,称为结果集。 语法:可以用以下语句选择特定列名,

    2023年04月08日
    浏览(35)
  • MySQL- sql语句基础

    报错:You can’t specify target table ‘Person’ for update in FROM clause 原因:mysql不能在同一语句中先select出同一表中的某些值,然后对这个表做修改 错误写法 解决方法:添加临时表 正确写法 我们可以使用函数 GROUP_CONCAT() 将多行中的多个值组合成一个字符串。下面显示了 GROUP_CONC

    2024年02月12日
    浏览(38)
  • SQL 基础语句

    Data Definition Language 数据定义语言 创建 create 删除 drop 修改 alter 清空 truncate Data Manipulation Language 数据操纵语言 insert 插入数据入表 delete 删除数据 update 修改数据 实例 数据查询语言 实例 DataControlLanguage,数据控制语言,用于创建用户,给用户授权,撤销权限,删除用户。 授权

    2024年02月10日
    浏览(45)
  • MySQL基础(二)SQL语句

    目录 前言 一、SQL语句类型 二、数据库操作 查看 创建 进入 删除 更改 三、数据表操作 (一)、数据类型 1.数值类型 2.时间日期类型 3.字符串类型 4.二进制类型 (二)、查看 1.查看表内的数据 2.查看表格的属性 (三)、创建 1.写在列之后,声明列的字符集 2.写在表之后,声

    2024年02月15日
    浏览(41)
  • 经典SQL语句大全一:基础

    一、基础 1 、说明:创建数据库 CREATE DATABASE database-name 2 、说明:删除数据库 drop database dbname 3 、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice \\\'disk\\\', \\\'testBack\\\', \\\'c:mssql7backupMyNwind_1.dat\\\' --- 开始 备份 BACKUP DATABASE pubs TO testBack 4 、说明

    2024年02月10日
    浏览(81)
  • 零基础自学SQL课程 | DELETE 删除语句

    大家好,我是宁一。 今天是SQL课程的第十课。 讲讲DELETE 删除语句,用来删除表中的一条或多条记录。 基本语法: 1、DELETE语句 如果省略WHERE条件,这时候DELETE就会删除整个表的记录。 注意: 这里不是删除表,只是删除表中所有数据,还会保留表结构的。 实例: 删除Teach

    2023年04月09日
    浏览(43)
  • 06-MySQL-基础篇-SQL之DCL语句

    前言 本篇来学习下SQL中的DCL语句 DCL DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。 管理用户 查询用户 说明: Host:代表当前用户访问的主机, 如果为localhost, 仅代表只能够在当前本机访问,是不可以远程访问的。 User:代表的是

    2024年02月15日
    浏览(35)
  • 面试之快速学习SQL-基础增删改查语句

    在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。 操作符 描述 引号的使用 请注意 , 我们在例子中的条件值周围使用的是单引号 。 SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用

    2024年02月14日
    浏览(32)
  • 01 | 基础架构:一条SQL查询语句是如何执行的?

    画出 MySQL 的基本架构图 Server 层和存储引擎层各自有哪些组件? Server 层 连接器 查询缓存 分析器 优化器 执行器 所有内置函数(日期、时间、数学和加密函数等) 所有跨存储引擎的功能(存储过程、触发器、视图等) 存储引擎层 负责数据的存储和读取 连接器的作用? 连接

    2024年02月08日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包