暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SQL语言基础

小黄的学习笔记 2021-06-16
269
  • 基于SQLyog

  • 登录:mysql -h主机名localhost -P端口3306 -uroot -p密码

一、注释规范

三种注释方式:

#注释1
-- 注释2
/*
注释3:多行注释
和java一样
*/

二、DDL:库和表的管理

2.1 库的管理

#1、查看数据库
show databases;

#2、选择数据库
use dbname;

#3、查看当前选择使用的数据库
select database();

#4、创建数据库
create database dbname;
create database if not exists dbname;

#5、删除数据库
drop database dbname;
drop database if exists dbname;

2.2 表的管理

1. 数据类型

  • 整型:括号中的参数是显示宽度

    • tinyint
    • samllint
    • int
    • bigint
  • 浮点型:m代表数总长位数,n代表小数点后的位数

    • FLOAT(m,n)
    • DOUBLE(m,n)
    • DECIMAL(m,n):精确度最高
  • 字符型:n表示最多字符个数

    • CHAR(n):n可选,不可变长度,不足会补空格,默认是1
    • VARCHAR(n):n必选,可变长度,最大为n
    • TEXT:保存长文本使用
  • 日期型

    • DATE:日期
    • TIME:时间
    • DATETIME:所占字节空间 8
    • TIMESTAMP:所占字节空间 4
  • 二进制型

    • BLOB 存储图片数据

2. 常见约束

  • NOT NULL
  • DEFAULT
  • PRIMARY KEY
  • UNIQUE
  • CHECK
  • FOREIGN KEY
#1、创建数据表:属性/字段 + 数据类型 + 约束
/*
create table if not exists 表名(
字段名 字段类型 字段约束,
字段名 字段类型 字段约束,
字段名 字段类型 字段约束,
...);
*/
create table if not exists table_name(
id int,
name varchar(20),
gender char,
weight double);

create table table_name(
id int primary key auto_increment, #auto_increment:自增
name varchar(20) default '男',
gender char not null,
weight double,
borndate datetime,
age int check(age between 0 and 100),
majorid int,
#major是一个表,id是它的主键,majorid是这个表的外键
constraint fk foreign key (majorid) references major(id));



#2、修改数据表:对表及字段的操作

#2.1 修改表名
alter table table_name rename to table_name1;
#2.2 添加字段
alter table table_name add column email varchar(20) not null;
#2.3 修改字段名
alter table table_name change column borndate birthday Timestamp null;
#2.4 修改字段类型
alter table table_name modify column birthday timestamp not null;
#2.5 删除字段
alter table table_name drop column birthday;
#2.6 删除数据表
drop table table_name;
#2.7 复制数据表
#仅复制表的结构:字段 + 数据类型
create table table_name1 like table_name;
#复制表的结构+数据
create table table_name2 select * from table_name;
#复制表中的特定字段
create table table_name3
select id, name
from table_name
where 1=2; #因为这里筛选条件不成立,所以不会有数据,只有这两个字段的表头


#3、查看当前数据库里的数据表
show tables;

#4、查看表的结构
desc table_name;

三、DML:数据的增、删、改、查

#表的增、删、改、查
insert into table_name values(1, 'xxx', '男', '50.5'); #对应字段的值
delete from table_name where id=1;
update table_name set name='yyy' where id=1;
select * from table_name

四、注意

4.1 mysql中的 +

  • 只能做加法运算
  • 若其中有字符型,则会强制将字符型当做0处理
  • 若其中有一个操作数是null,则+的结果为null



文章转载自小黄的学习笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论