SQL语句的使用事项与教程

1、SQL简介

SQL 指结构化查询语言,全称是 Structured Query Language。
SQL 可以访问和处理数据库。
SQL 是一种 ANSI(American National Standards Institute 美国国家标准化组织)标准的计算机语言。

作用:
SQL 面向数据库执行查询
SQL 可从数据库取回数据
SQL 可在数据库中插入新的记录
SQL 可更新数据库中的数据
SQL可从数据库删除记录
SQL 可创建新数据库
SQL 可在数据库中创建新表
SQL 可在数据库中创建存储过程
SQL 可在数据库中创建视图
SQL 可以设置表、存储过程和视图的权限

2、SQL内的数据类型

Microsoft Access、MySQL 和 SQL Server 所使用的数据类型和范围。

Microsoft Access
数据类型 描述 储存
Text 用于文本或文本与数字的组合。最多 255 个字符。
Memo Memo 用于更大数量的文本。最多存储 65,536 个字符。注释:无法对 memo 字段进行排序。不过它们是可搜索的。
Byte 允许 0 到 255 的数字。 1字节
Integer 允许介于 -32,768 与 32,767 之间的全部数字。 2字节
Long 允许介于 -2,147,483,648 与 2,147,483,647 之间的全部数字。 4字节
Single 单精度浮点。处理大多数小数。 4 字节
Double 双精度浮点。处理大多数小数。 8字节
Currency 用于货币。支持 15 位的元,外加 4 位小数。提示:您可以选择使用哪个国家的货币。 8 字节
AutoNumber AutoNumber 字段自动为每条记录分配数字,通常从 1 开始。 4 字节
Date/time 用于日期和时间 8字节
Yes/No 逻辑字段,可以显示为 Yes/No、True/False 或 On/Off。在代码中,使用常量 True 和 False (等价于 1 和 0)。注释:Yes/No 字段中不允许 Null 值 1字节
Ole Object 可以存储图片、音频、视频或其他 BLOBs(Binary Large OBjects)。 最多1GB
Hyperlink 包含指向其他文件的链接,包括网页。
Lookup Wizard 允许您创建一个可从下拉列表中进行选择的选项列表。 4 字节
MySQL

在MySQL中的数据类型主要为三种,有三种主要的类型:Text(文本)、Number(数字)和 Date/Time(日期/时间)类型。
text类型详细

数据类型 描述
CHAR(size) 保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多 255 个字符。
VARCHAR(size) 保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多 255 个字符。注释:如果值的长度大于 255,则被转换为 TEXT 类型。
TINYTEXT 存放最大长度为 255 个字符的字符串。
TEXT 存放最大长度为 65,535 个字符的字符串。
BLOB 用于 BLOBs(Binary Large OBjects)。存放最多 65,535 字节的数据。
MEDIUMTEXT 带符号范围-8388608到8388607,无符号的范围是0到16777215。 size 默认为9
INT(size) 带符号范围-2147483648到2147483647,无符号的范围是0到4294967295。 size 默认为 11
BIGINT(size) 带符号的范围是-9223372036854775808到9223372036854775807,无符号的范围是0到18446744073709551615。size 默认为 20
FLOAT(size,d) 带有浮动小数点的小数字。在 size 参数中规定显示最大位数。在 d 参数中规定小数点右侧的最大位数。
DOUBLE(size,d) 带有浮动小数点的大数字。在 size 参数中规显示定最大位数。在 d 参数中规定小数点右侧的最大位数。
DECIMAL(size,d) 作为字符串存储的 DOUBLE 类型,允许固定的小数点。在 size 参数中规定显示最大位数。在 d 参数中规定小数点右侧的最大位数。

在这里插入图片描述
在这里插入图片描述

SQL Server

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

SQL基本语法

SELECT - 从数据库中提取数据
UPDATE - 更新数据库中的数据
DELETE - 从数据库中删除数据
INSERT INTO - 向数据库中插入新数据
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引

以下内容主要用MySQL进行演示


数据库操作

1、查询数据库

-- 查询所有数据库
SHOW DATABASES;
-- 查询某个数据库的编码
SHOW CREATE DATABASE test;

2、创建数据库

-- 创建库
CREATE DATABASE demo1;
-- 创建数据库的时候指定编码表
-- GB2312、GBK、GB18030、UTF-8(unicode)、ISO-8859-1(拉丁文)
CREATE DATABASE demo2 CHARACTER SET gbk;
-- 修改库的校对规则
CREATE DATABASE demo3 CHARACTER SET utf8 COLLATE utf8_bin;

3、删除数据库

-- 删除数据库
DROP DATABASE demo4;

4、修改数据库

-- 修改数据库编码表
ALTER DATABASE demo3 CHARACTER SET gbk;

表的操作

对某个表操作的时候,一定要先切换到某个库下

-- 切换数据
use 库名;

1、建表

-- 创建表
CREATE TABLE tb_user(
  id INT,
  username VARCHAR(10),
  age INT
);

定义数据表中的每列都必须明确具体的数据类型
数字:TINYINT 、SMALLINT、INT、BIGINT、FLOAT、DOUBLE
字符串:char(长度)、varchar(长度)

​ char(10):数据表的列最多只能存放10字符数据,如果不足10个,使用空格补够10个,超过报错

​ varchar(10):数据表的列最多只能存放10字符数据,如果不足10个,长度会发生变化,超过报错

日期:

date (只有日期)

​ time(只有时间)

datetime(日期时间都有)

​ timestamp(日期时间都有 ):时间戳

文件数据类型:

​ blob(存放大二进制数据)

​ text(存放大的文本文件)

tinyblob tinytext 255字节

​ blob text 64KB

​ mediumblob mediumtext 16MB

​ longblob longtext 4GB

开发中,文件不会给数据库中存储。采用专业的文件管理服务器存储,然后将文件在服务器上的存储位置存放在数据库中。

2、对表的单表约束

  • 主键约束:primary key , 它是保证当前这一行数据与其他行不重复。主键列的数据不能重复,也不能存放null.
  • 非空约束:not null , 这个列中不能包含null。
  • 唯一约束:unique , 这列的数据不能重复。

一个表中主键一般只有一列或两列(联合主键)。主键会自动添加索引(主键索引)。

一个表中的唯一约束可以添加在多列上。

3、删除表

-- 删除表
drop table 表名;

4、修改表

表结构修改语法:

alter table 表名 增/删/改 列名 类型( 长度) 约束;

1、增加列: alter table 表名 add 列名 类型(长度) 约束;

2、修改现有列类型、长度和约束 语法:alter table 表名 modify 列名 类型(长度) 约束;

3、修改现有列名称 语法:alter table 表名 change 旧列名 新列名 类型(长度) 约束;

4、删除现有列 语法:alter table 表名 drop 列名 ;

5、修改表名 :rename table 旧表名 to 新表名;

6、修改表的字符集:alter table 表名 character set 编码表名;

5、查询表结构

desc 表名; 查看表结构

show tables ; 查看当前库内所有表名

show create table 表名; 查看建表语句和字符集

所有数据表结构操作语句都是 DDL

对表中数据操作

1、创建数据表
create table student(
	id int primary key auto_increment,
	sage int ,
	sname varchar(32) not null,
	gender varchar(10) not null,
	score double not null,
	birthday date
);

在创建表结构的时候,如果主键是整数类型,那么可以借助mysql的主键自增长策略,在插入数据的时候,可以省略主键的数据。

2、表中插入数据

语法:insert into 表名 (列名,列名,列名…) values (值,值,值…);

  • 如果表的主键是自增长的,这时插入的时候,主键可以写null,但是不是将null存放到主键列上,而是让数据库自己维护主键的数据。
  • 如果列的类型是varchar、char、date、datetime类型需要插入数据的时候,使用单引号引用
INSERT INTO student
            (id,
             sage,
             sname,
             gender,
             score,
             birthday)
VALUES (NULL,
        22,
        '张三',
        '男',
        99.89,
        '2020-07-18');
  • 如果某些列不需要插入数据,可以在插入的时候省略这些列
INSERT INTO student(sname , gender,score)VALUES('李四','男',89.00
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值