以MySQL数据库为例——初步接触Sql语句(一)

1、关系数据库基本概念及MySQL基本命令

数据库管理系统:Database Management System,它负责管理数据的存储、安全、一致性、并发、恢复和访问等操作。
数据字典:用于存储DBMS所拥有的每个事务的相关信息,如名字、结构、位置和类型;这种关于数据的数据也称为元数据。
数据库发展历程:网状型数据库–》层次型数据库–》关系数据库–》面向对象数据库
MySQL存储机制:

  • MyISAM:MySQL早期默认的存储机制,对事物支持不够好
  • InnoDB:提供事务安全的存储机制。InnoDB通过建立行级锁来保证事务完整性,并以Oracle风格的共享锁来处理select语句。

1、查看MySQL中包含多少个数据库

show databases;

2、创建新的数据库

create database 数据库名;

3、删除指定数据库

drop database 数据库名;

4、进入指定数据库

use 数据库名;

5、查询数据库中包含的所有表

show tables;

6、查看指定数据表的表结构

desc 表名;

这里写图片描述

2、SQL语句基础

  • 查询语句:select
  • DML(Data Manipulation Language,数据操作语言)语句:insert、update、delete
  • DDL(Data Definition Language,数据定义语言)语句:create、alter、drop、truncate(如果使用MySQL的MyISAM存储机制,truncate相当于先删除指定的数据表,然后再重建该数据表。如果使用InnoDB存储机制,在MySQL5.0.3之前,truncate与delete一样;在5.0.3之后,truncate table比delete效率高,但如果该表被外键约束所参照,则依然被映射成delete操作。)
  • DCL(Data Control Language,数据控制语言)语句:grant、revoke关键字
  • 事务控制语句:commint、rollback、savepoint

DDL(Data Definition Language,数据定义语言)

DDL:操作数据库对象的语句,包括create、alter、drop
数据库对象:table(表)、constraint(约束)、view(视图)、index(索引)、function(函数)、procedure(存储过程)、trigger(触发器)、数据字典

  1. 通过子查询建表
create table a as select * from test;

这里写图片描述
2. 修改表结构的语法
增加列定义

alter table 表名 add(字段名 字段类型);
alter table a add(aaa varchar(255) default 'aaa'); 

修改列定义

alter table 表名 modify 字段名 字段类型;
alter table a modify aaa int;

删除列

alter table 表名 drop 字段名;
alter table a drop aaa;

重命名列

alter table 表名 change 旧字段名 新字段名 新字段类型; 
alter table a change aaa bbb int;

重命名表

alter table 旧表名 rename to 新表名;
alter table a rename to b;
  1. 删除表的语法
drop table 表名;
drop table a;
  1. truncate表(截断)
    删除该表所有数据,但保留表结构
truncate 表名;
truncate aaa;
  • 非InnoDB存储机制,truncate比delete速度快
  • InnoDB存储机制-MySQL5.0.3之前,truncate与delete一样
  • InnoDB存储机制-MySQL5.0.3之后,truncate比delete速度快,但如果该表被外键约束所参照,truncate被映射为delete操作

3、数据库约束

数据库完整性约束
- not null:非空约束,指定某列不能为空
- unique:唯一约束,指定某列或者几列组合不能重复
- primary key:主键,指定该列的值可以唯一的标识该条记录
- foreign key:外键,指定该行记录从属于主表中的一条记录,主要用于保证参照完整性
- check:检查,指定一个布尔表达式,用于指定对应列的值必须满足该表达式
(MySQL不支持check约束)
注:MySQL使用information_schema数据库里的TABLE_CONSTRAINTS表来保存该数据库实例中的所有的约束信息
- not null

alter table 表名 modify 字段名 字段类型 null/not null;
alter table a modify aaa int not null;
  • unique
    指定列或列组合不出现重复值,但可以出现多个null。数据库中null不等于null
alter table 表名 add 字段名 字段类型 unique;
alter table a add aaa int unique;
  • primary key

  • foreign key

foreign key(b_id) references b(b_id)
constraint fk_id foreign key(b_id) references b(b_id)
alter table a add foreign key(b_id) references b(b_id);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值