1660 0

[学习笔记] 【学习笔记】一、SQL语言书写要求 SQL语句可以单行或多行书写,用分号结尾 ... [推广有奖]

  • 0关注
  • 1粉丝

大专生

63%

还不是VIP/贵宾

-

威望
0
论坛币
340 个
通用积分
8.2149
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
270 点
帖子
45
精华
0
在线时间
0 小时
注册时间
2020-5-24
最后登录
2020-7-1

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
一、SQL语言书写要求

SQL语句可以单行或多行书写,用分号结尾

SQL关键字用空格分隔,也可以用缩进来增强语句的可读性

SQL对大小写不敏感

用#或-- 单行注释,用/**/多行注释,注释语句不可执行

二、MySQL常用数据类型

int:大整数型,有符号大小-2147483648~2147483647, 无符号大小0~4294967295,默认长度最多为11个数字,如int(11)

float:单精度浮点型,默认float(10,2),表示最多10个数字,其中有2位小数

decimal:十进制小数型,适合金额、价格等对精度要求较高的数据存储。默认decimal(10,0),表示最多10位数字,其中0位小数。

float二进制存储,decimal十进制存储,精度更高

char:固定长度字符串型,长度为1-255。如果长度小于指定长度,右边填充空格。如果不指定长度,默认为1。如char(10),‘abc ’

varchar:可变长度字符串型,长度为1-255。必须指定长度,如varchar(10),‘abc’

char速度快,但存储空间有限;varchar速度慢,节省存储空间

text:长文本字符串型,最大长度65535,不能指定长度

date:日期型,‘yyyy-MM-dd’

time:时间型,‘hh:mm:ss’

datetime:日期时间型,‘yyyy-MM-dd hh:mm:ss’

Timestamp:时间戳,在1970-01-01 00:00:00和2037-12-31 23:59:59之间,如1973-12-30 15:30,时间戳为:19731230153000

字符串类型和日期时间类型都需要用引号括起来

三、约束条件

1、约束条件说明

约束条件是在表上强制执行的数据检验规则

用来保证创建的表的数据完整性和准确性

主要在两方面对数据进行约束:空值和重复值

就单个字段而言,字段类型必须在前,多个约束之间用空格隔开,不区分先后顺序

2、约束条件分类

主键约束(primary key)

每个表中只能有一个主键

主键值须非空不重复

可设置单字段主键,也可设置多字段联合主键

联合主键中多个字段的取值完全相同时,才违反主键约束

列级添加主键约束:create table <表名> (<字段名1> <字段类型1> primary key,……<字段名n> <字段类型n>);

表级添加主键约束:create table <表名>(<字段名1> <字段类型1>,......<字段名n> <字段类型n>,[constraint 主键约束名]primary key(字段名1[,字段名2,...字段名n]));

唯一约束(unique)

指定字段的取值不能重复,可以为空,但只能出现一个空值

列级添加唯一约束:create table <表名> (<字段名1> <字段类型1> unique,……<字段名n> <字段类型n>);

表级添加唯一约束:create table <表名> (<字段名1> <字段类型1,……<字段名n> <字段类型n>,[constraint 唯一约束名] unique(字段名1[,字段名2...字段名n]));

自动增长列(auto_increment)

指定字段的取值自动生成,默认从1开始,每增加一条记录,该字段的取值会加1

只适用于整数型,配合主键一起使用

创建自动增长约束:create table <表名> (<字段名1> <字段类型1> primary key auto_increment,……<字段名n> <字段类型n>);

非空约束(not null)

字段的值不能为空

创建非空约束:create table <表名> (<字段名1> <字段类型1> not null,……<字段名n> <字段类型n>);

默认约束(default)

如果新插入一条记录时没有为该字段赋值,系统会自动为这个字段赋值为默认约束设定的值

创建默认约束:create table <表名> (<字段名1> <字段类型1> default value,……<字段名n> <字段类型n>);

外键约束(foreign key)

某一表中某字段的值依赖于另一张表中某字段的值

主键所在的表为主表,外键所在的表为从表

每一个外键值必须与另一个表中的主键值相对应

创建外键约束:create table <表名> (<字段名1> <字段类型1>,……<字段名n> <字段类型n>,[constraint 外键约束名] foreign key(字段名) references <主表>(主键字段));

若主表主键为联合主键,外键约束连接时只需依赖其中一个主键字段即可

外键连接时,先创建主表,再创建从表

二、数据定义语言DDL

1、数据库的增删选查

查看数据库:show databases;

创建数据库:create database 数据库名称; 不能与SQL关键字相同,也不能重复

选择使用数据库:use 数据库名称;

删除数据库:drop database 数据库名称;

以下为系统数据库不可删除,否则只能重新安装,企业里可咨询管理员回滚

information_schema
mysql
performance_schema
sys

2、数据表的增删改查

增、删

建表之前要先选择进入数据库:use 数据库名称;

创建数据表:create table 表名(字段名,字段类型,[约束条件]......);

1、建表时可以不指定约束条件,但是必须指定表名、字段名及每个字段的数据类型;
2、表名不能与SQL关键字相同,同一个数据库下的表名不能重复;
3、字段名可以是英文或中文,引号可以加也可以不加

查看当前数据库中所有表: show tables;

查看表结构:desc 表名;

删除数据表: drop table 表名;



修改表名:alter table 原表名 rename 新表名;

修改字段名:alter table 表名 change 原字段名 新字段名 数据类型;

修改字段类型:alter table 表名 modify 字段名 新数据类型;

修改字段名、字段类型时,数据类型仅有默认、非空、自增三种可选

添加字段:alter table 表名 add 新字段名 数据类型;

修改字段的排列位置:

alter table 表名 modify 字段名 数据类型 first;

alter table 表名 modify 要排序的字段名 数据类型 after 参照字段;

修改排列位置默认新添加的字段在最后

删除字段:alter table 表名 drop 字段名;

三、 数据操作语言DML

1、插入数据

字段名与字段值的数据类型、个数、顺序必须一一对应
需要为表中每一个字段指定值,且值的顺序须和数据表中字段顺序相同

指定字段名插入: insert into 表名(字段名1[,字段名2,...]) values(字段值 1[,字段值 2,...]);

不指定字段名插入:insert into 表名 values(字段值 1[,字段值 2,...]);

批量导入数据:load data infile ‘文件路径.csv’into table 表名 fields terminated by ‘,\' ignore 1 lines;

show variables like \'%secure%\';用来查询文件路径,也可以为其他任何路径 路径中不能有中文,并且要将‘\\’改为‘\\\\’或‘/’

2、更新数据

update 表名 set 字段名1=字段值1[, 字段名2=字段值2[,…]][ where 更新条件];

set sql_safe_updates=0; 用以设置数据库安全权限,才可以对数据表进行整体更新;不带where条件是整体进行更新

3、删除数据

delete from 表名[ where 删除条件];

truncate 表名;(与delete from 表名一样,都是删除表中全部数据,保留表结构)

delete和truncate的区别:

delete可以添加where子句删除表中部分数据,truncate只能删除表中全部数据;
delete删除表中数据保留表结构,truncate直接把表删除(drop table)然后再创建一张新表(create table),执行速度比delete快。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:sql语句 sql语言 学习笔记 sql 习笔记

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加JingGuanBbs
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-11-5 20:46