数据库的概念
数据库服务器、数据库和表之间的关系
所谓安装数据库服务器, 只是在机器上安装了一个数据库管理程序, 这个管理程序可以管理多个数据库.
一般开发人员在设计项目的时候会针对每一个应用创建一个数据库.
为了保存每一类实体, 在一个数据库中创建多个表
操作库
创建库
CREATE DATABASE [IF NOT EXISTS] 数据库名 [参数[ 参数] [ 参数]...];
参数:
CHARACTER SET 码表名
COLLATE 校对规则名 参见帮助文档第10章
命令:show character set;可以显示MySQL支持的字符集和校对规则
create database school;
创建一个名为school的数据库
use school;
打开数据库school(指定school数据库为当前数据库)
数据库:表、视图、存储过程、触发器等数据对象
create database 数据库名[不能是纯数字的,但能用数字打头,不区分大小写]
系统就会在指定的文件夹创建子文件夹
create database if not exists xsxxgl;//如果是已经存在的那就什么都不做,如果没有存在,那么就创建数据库
create database 数据库
character set 字符集的名称
collate 字符集的校验规则;
show character set;//显示MySQL支持的字符集
Show collation like ‘latin1%’; 显示latin1字符集可以采用的校对规则
显示库
SHOW DATABASES;
show databases;显示当前数据库服务器上有哪些数据库
显示数据库创建语句
SHOW CREATE DATABASE 数据库名; 查看数据库所采用的字符集
修改库
ALTER DATABASE 数据库名[ 参数[ 参数][ 参数]...];
注意: 不能改数据库的名字
删除库
DROP DATABASE [IF EXISTS] 数据库名;
操作表
操作表之前使用需要先确定使用哪个数据库
USE 数据库名
创建表
CREATE TABLE 表名(列名 类型[,列名 类型][,列名 类型]...);
查看所有表
SHOW TABLES;
查看表的创建语句
SHOW CREATE TABLE 表名;
显示表结构
DESC 表名;
修改表名
RENAME TABLE 原表名 TO 新表名;
修改字符集
ALTER TABLE 表名 CHARACTER SET 字符集名;
删除表
DROP TABLE 表名;
操作列
追加列
ALTER TABLE 表名 ADD 列名 类型[,列名 类型][,列名 类型]...;
修改列类型
ALTER TABLE 表名 MODIFY 列名 类型[,列名 类型][,列名 类型]...;
修改列
ALTER TABLE 表名 CHANGE COLUMN 原列名 新列名 类型;
删除列
ALTER TABLE 表名 DROP 列名;
操作数据
插入
语法:
INSERT INTO 表名[(列名[,列名]...)] VALUES(值[,值]...);
向user表中插入3条包含中文的数据
insert into user(id,username,gender,birthday,position,salary,resume)
values(1,'张三','男','1990-9-9','程序员',6000,'介绍');
修改
语法
UPDATE 表名 SET 列名=值[,列名=值]...[WHERE 条件语句];
注意事项
WHERE子句选择满足条件的行进行更新, 如果不写, 则更新所有行
alter table tab1;
add column sex tinyint not null default 0;//添加列,带有默认值0
删除
语法
DELETE FROM 表名 [where 条件语句]
基本查询
1、选择指定的列
select 列名1,列名2... from 表名 select xid,name,sex,bir from xs;
select * from xs;
select name as 姓名,xid as 学号 from xs;//as给所选列定义别名
查询计算列
select 姓名,总学分,总学分*1.1 as 提高后的总学分 from xs;
select distinct zhuanye from xs;//把重复的行去掉
替换查询结果中的数据
select xid,name,
case //替换结构的开始
when zscore<50 then '不及格'
when zscore>=50 and zscore<60 then '及格'
when zscore>60 then '优秀'
end //替换结构的结束
主键约束primary key
创建表格的同时常见主键约束
create table table2
(pid char(6) primary key,
pname char(10)
);
create table orderdetail
(cutomerid char(6),
productid char(6),
quantity int,
primary key(customerid,productid)
)