数据库的基本概念
1.数据库的英文单词:DataBase 简称DB
2.什么是数据库啊?
*用于存储数据和管理的仓库
3.数据库的特点
1.持久化存储数据。其实数据库就是一个文件系统
2.方便存储和管理数据
3.使用了统一的方式操作数据库 --SQL !!!!
4.常用MySQL和Oracle
——————————————————————————————————
MySQL数据库软件
MySQL数据目录
*几个概念
*数据库:文件夹
*表:文件
*数据:
——————————————————————————————————
SQL
1.什么是SQL?
Structured Query Language:结构化查询语言
其实就是定义了操作所有关系型数据库。
每一种数据库操作的方式存在不一样的地方称为“方言”
2.SQL通用语法
1.SQL 语句可以单行或多行书写,以分号结尾。
2.可以使用空格和缩进增进可读性
3.SQL不区分大小写,关键字建议使用大写
4.3种注释
*单行注释:-- 注释内容 或 # 注释内容(mysql特有) 多行注释 /* 注释内容 */
*第一种用的多
3.SQL分类
1 Data Definition Language (DDL 数据定义语言) 如:建库,建表
关键词:create,drop,alter等
2 Data Manipulation Language(DML 数据操纵语言),如:对表中的记录操作增删 改
关键词:insert,delete,update等
3 Data Query Language(DQL 数据查询语言),如:对表中的查询操作
关键词:select,where等
4 Data Control Language(DCL 数据控制语言),如:对用户权限的设置
关键词:GRANT,REVOKE
——————————————————————————————————
DDL:创建数据库,表
1.操作数据库:CRUD(增删改查)
1.C(Create):创建
*创建数据库:
*create database 数据库名称;
*创建数据库,并判断是否存在,如果存在就不创建了
*create database if not exists 数据库名称;
*创建数据库,并指定字符集
*create database 数据库名称 character set 字符集名称;
*创建db4数据库,判断是否存在,并指定其字符集为gbk(重要 )
*create database if not exists db4 character set gbk;
2.R(Retrieve):查询
*查询所有数据库的名称
*show databases;
*查看某个数据库的字符集,查询某个数据库的创建语句
*show create database 数据库名称;
3.U(Updata):修改
*修改数据库的字符集
*alter database 数据库名称 character set 字符集名称;
4.D(Delete):删除
*删除数据库
*drop database 数据库名称;
*判断数据库存在,存在再删除
* drop database if exists 数据库名称:
5.使用数据库
*查询正在使用的数据库名称
*select database();
*使用数据库
*use 数据库名称;
2.操作表
1.C(Create):创建
1.语法:
*create table 表名(
列名1 数据类型1,
列名2 数据类型2,
...
列名n 数据类型n
);
*注意:最后一列不需要加逗号!!!
*数据类型:
1.int 整数类型
*age int,
2.double 小数类型
*score double(5,2) //最多有五位,小数点后面保留2位,最大值999.99
3.date:日期,只包含年月日的日期 yyyy-mm-dd
4.datetime :年月日,时分秒都包含 yyyy-mm-dd hh:mm:ss
5.timestamp:时间错类型 yyyy-mm-dd hh:mm:ss
*如果将来不给这个字段赋值,贼默认使用当前系统时间自动赋值
6.varchar(m) :字符串,m为最大长度
*name varchar(20)
*创建表:
create table student(
id int,
name varchar(32),
age int,
score double(4,1),
birthday date,
insert_time timestamp
);
*复制表:
create table 表名 like 被复制的表名;
2.R(Retrieve):查询
*查询某个数据库中所有表名称
*show tables;
*查询表结构
*desc 表名;
3.U(Updata):修改
1.修改表名
*alter table 表名 rename to 新的表名;
2.修改表的字符集
*alter table 表名 character set 新的字符集;
3.修改添加一列
*alter table 表名 add 列名 数据类型;
4.修改列的名称 类型
*alter table 列名 change 新的类名 新数据类型;
5.删除列
*alter table 表名 drop 列名;
4.D(Delete):删除
*drop table 表名;
*drop table if exists 表名:
下面这个图方便理解表
——————————————————————————————————
尽量自己打 不要忘了SQL语句!
使用小工具只是为了增加阅读性
——————————————————————————————————
DML:增删改表中数据!!!
1.添加数据
*语法:
*insert into 表名(列名1,列名2...) values(值1.值2....);
*注意事项:
1.列名和值要一一对应
2.如果表名后,不定义列名,贼默认给所有列添加值(建议不要偷懒)
3.除了数字类型,其他类型需要使用''引起来
*例如date,一开始没有加引号,发现2000-12-19就不行
然后改成了20001219好像又成了
*正确还是应该是"2000-12-19"
4. !插入中文字符报错怎么办?
好像需要两步,表字符集修改,字段字符集修改(一开始没改这个就错了)
1.ALTER TABLE stu CHARACTER SET utf8;
2.ALTER TABLE stu CHANGE NAME NAME VARCHAR(20) CHARACTER SET utf8;
2.删除数据
*语法:
*delete from 表名 where 条件
如DELETE FROM stu WHERE id = 74;
*注意:
1.如果不加条件,则删除所有记录了!!!!
2.如果要删除所有记录
1.delete from 表名;--不推荐使用,因为他有多少条记录就会删除多少
2.TRUNCATE TABLE 表名; --删除表,然后在创建一个一模一样空表!!
*推荐用2噢,效率更高
3.修改数据
*语法:
*update 表名 set 列名1=值1,列名2=值2,.. where 条件
*如UPDATE stu SET age = 20 WHERE id = 1;
*注意:
如果不加任何条件,贼会将表中所有记录全部修改
——————————————————————————————————
DQL:查询表中的记录
1.检索所有列
*select * from 表名; //很重要啊
2.检索单个列
*SELECT age FROM stu;