数据库复习一

数据库

概念:存储数据,管理数据的仓库。

分类:

  • 关系型数据库:Oracle、MySQL、SQLServer、Access
  • 非关系型数据库:MongDB、Redis等

数据库结构

库-->表-->记录(行)-->字段(列)

SQL语句(SQL不区分大小写)

定义:结构化查询语言(Structured Query Language)

分类:

DML:数据操纵语言;

如:insert,delete,update,select(插入、删除、修改、检索)简称CRUD操新增Create、查询Retrieve、修改Update、删除Delete

DDL:数据库定义语言;

如:create table之类

DCL:数据库控制语言;

DQL:数据库查询语言。

数据库常用操作

建库:

create database cgb2106 default character set utf8;

删库:

drop database cgb2106;

查看所有库:

show database;

表的常用操作:

创建表:

  • 创建tb_door表,有id,door_name,tel字段
create table tb_door(
id int primary key auto_increment,
door_name varchar(100),
tel varchar(50)
)

删除表

drop table tb_door

修改表

  • 添加列
alter table tb_door add column money numeric(7,2)

查看表

show tables

表记录的常用操作

插入记录:

insert into tb_door values(null,"永和大王1店",666)
insert into tb_door values(null,"永和大王2店",888)

查询记录

select * from tb_door

修改记录

  • 修改tb_door表中id为1的记录
update tb_door set tel = 555 where id = 1

删除记录

  • 删除tb_door表中id为2的数据
delete from tb_door where id=2

约束

主键约束

  • primary key

主键自增策略:当主键为数值类型时,为了方便维护,可以设置主键自增策略(auto_increment),设置了主键自增策略后,数据库会在表中保存一个AUTO_INCREMENT变量值,初始值为1,当需要id值,不需要我们指定值,由数据库负责从AUTO_INCREMENT获取一个id值,作为主键值插入到表中。而且每次用完AUTO_INCREMENT值,都会自增1.

例:

create table abc(
id int primary key auto_increment
)

非空约束

如果为一个列添加了非空约束,那么这个列的值就不能为空,但可以重复。

例:为password添加非空约束

create table abc(
password varchar(50) not null
)

唯一约束

如果为一个列添加了唯一约束,那么这个列的值就必须是唯一的(不能重复),但可以为空。

例:为username添加唯一约束

create table abc(
username varchar(50) unique
)

外键约束

默认约束

给指定字段设置默认值

CREATE TABLE f(
id INT PRIMARY KEY AUTO_INCREMENT,#主键,自动递增
sex VARCHAR(10) DEFAULT '男' #设置默认值
)

检查约束

给指定字段设置合法值的检查规则

CREATE TABLE g(
id INT PRIMARY KEY AUTO_INCREMENT,#主键,自动递增
age INT,
CHECK(age>0 AND age<200)#设置检查
)

#外键:通过指定的SQL语句描述了两张表的关系

#约束:子表添加记录时id必须在取自主表

#删除主表记录时,必须没有被子表使用着

#怎么确定谁是子表谁是主表?子表中有外键的SQL

CREATE TABLE tb_user(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(10),
sex VARCHAR(10)
)
CREATE TABLE tb_user_address(
user_id INT PRIMARY KEY AUTO_INCREMENT,
address VARCHAR(20),
#表明和哪张表的哪个字段有关系
#foreign key(本表的主键) references 关联表(主键)
FOREIGN KEY(user_id) REFERENCES tb_user(id)
)

基础函数

lower

SELECT 'ABC',LOWER('ABC') from dept    --数据转小写

upper

select upper(dname) from dept --数据转大写

length

select length(dname) from dept --数据的长度

substr

SELECT dname,SUBSTR(dname,1,3) FROM dept --截取[1,3]

concat

select dname,concat(dname,'123') X from dept --拼接数据

replace

select dname,replace(dname,'a','666') X from dept --把a字符替换成666

ifnull

select ifnull(comm,10) comm from dept2 #判断,如果comm是null,用10替换

round & ceil & floor

round四舍五入,ceil向上取整,floor向下取整

–直接四舍五入取整

select comm,round(comm) from emp

–四舍五入并保留一位小数

select comm,round(comm,1) from emp

–ceil向上取整,floor向下取整

select comm,ceil(comm) ,floor(comm) from emp

now

--获取当前时间

select now()   年月日,时分秒
select curdate()  年月日
select curtime()  时分秒

year&month&day

select year(now()),month(now()),day(now()) 

hour()&minute()&second()

select hour(now()),minute(now()),second(now())

转义字符

select 'ab'cd' -- 单引号是一个SQL语句的特殊字符
select 'ab\'cd' --数据中有单引号时,用一个\转义变成普通字符

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值