文章目录

  • 结构化查询语句SQL
  • 库操作
  • 表操作
  • CURD操作
  • 问题


结构化查询语句SQL

SQL是结构化查询语言(Structure Query Language),它是关系型数据库的通用语言。

SQL主要可以划分为以下 3 个类别:
DDL(Data Definition Languages)语句
数据定义语言,这些语句定义了不同的数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括 create、drop、alter等。

DML(Data Manipulation Language)语句
数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的语句关键字主要包括 insert、delete、update 和select 等。

DCL(Data Control Language)语句
数据控制语句,用于控制不同的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括 grant、revoke 等。

库操作

首先查看mysql服务是否工作正常(默认在3306端口)

mysql 结构化编程 mysql支持结构化查询语言_sql

输入密码进入MySQL

mysql 结构化编程 mysql支持结构化查询语言_sql_02

查询数据库
show databases;

mysql 结构化编程 mysql支持结构化查询语言_sql_03

创建数据库
create database TestDB;

删除数据库
drop database TestDB;

选择数据库
use TestDB;

表操作

查看表
show tables;

mysql 结构化编程 mysql支持结构化查询语言_数据库_04

创建表

create table user(id int unsigned primary key not null auto_increment,
				name varchar(50) not null,
				age tinyint not null,
				sex enum('M','W') not null)engine=INNODB default charset=utf8;

mysql 结构化编程 mysql支持结构化查询语言_mysql 结构化编程_05

查看表结构
desc user;

mysql 结构化编程 mysql支持结构化查询语言_mysql_06

查看建表SQL
show create table user\G
show create table user;

mysql 结构化编程 mysql支持结构化查询语言_sql_07


mysql 结构化编程 mysql支持结构化查询语言_sql_08

删除表
drop table user;

mysql 结构化编程 mysql支持结构化查询语言_数据库_09

CURD操作

insert 增加
 insert into user(name, age, sex) values(‘zhang san’, 20, ‘M’);

注意,这个insert是根据上面所建的表的字段进行的,为什么没写ID,因为ID是自增键。

mysql 结构化编程 mysql支持结构化查询语言_学习_10

update 修改
update user set age = age + 1;

mysql 结构化编程 mysql支持结构化查询语言_sql_11

delete 删除
delete from user where id = 1;

mysql 结构化编程 mysql支持结构化查询语言_数据库_12

select 查询
 select* from user;
 select id,name,age,sex from user;
 select id,name from user;
 select id,name,age,sex from user where sex=‘M’ and age>=20 and age<=25;
 select id,name,age,sex from user where sex=‘M’ and age between 20 and
 25;
 select id,name,age,sex from user where sex=‘W’ or age>=22;
 可配合运算符达到不同查询效果去重 distinct

比如要得知表里面的user都是哪些年龄段的:

select distinct age from user;

mysql 结构化编程 mysql支持结构化查询语言_学习_13

问题

1.面试题:有自增键的表里,删除其中一条数据,再增加数据后,自增键是用以前删除的还是往后补?

实际是继续往后自增的。

mysql 结构化编程 mysql支持结构化查询语言_数据库_14

2.下面两种增加方式,请问他们有什么区别?

mysql 结构化编程 mysql支持结构化查询语言_sql_15

实际上,客户端与MySQL Server需要先进行TCP三次握手,那么第一种重复insert会导致下面三个步骤做了15次,而第二种方式,下面的三步只执行力一遍。

mysql 结构化编程 mysql支持结构化查询语言_学习_16

有需要,可以学习数据库连接池,经过性能测试发现,省略大量TCP三次握手,提升的效率还是可以的。