mysql

数据库 基本命令


约定:
shell>window下输入的命令

mysql>进入MySQL程序后,输入的MySQL的命令

二 、DDL:数据定义语言 Data Definition Language
  作用:定义数据库或者表结构的。
  操作的对象:数据库或表的结构的。
  关键字:CREATE ALTER DROP

创建一个名称为mydb1的数据库。
mysql>CREATE DATABASE mydb1;


查看数据库的创建细节
mysql>SHOW CREATE DATABASE mydb1;


创建一个使用gbk字符集的mydb2数据库。
mysql>CREATE DATABASE mydb2 CHARACTER SET gbk;


创建一个使用gbk字符集,并带校对规则的mydb3数据库。
mysql>CREATE DATABASE mydb3 CHARACTER SET gbk COLLATE gbk_chinese_ci;


查看当前数据库服务器中的所有数据库
mysql>SHOW DATABASES;


查看前面创建的mydb2数据库的定义信息
mysql>SHOW CREATE DATABASE mydb1;


删除前面创建的mydb3数据库
mysql>DROP DATABASE mydb3;

创建表之前一定先选择数据库
mysql>USE test;


eg:创建一个员工表
mysql>CREATE TABLE employee(
id int,
name varchar(200),
gender varchar(10),
birthday date,
entry_date date,
job varchar(200),
salary float(8,2),
resume text
);

显示当前数据库中的所有表格
mysql>SHOW TABLES;


在上面员工表的基本上增加一个image列。
mysql>ALTER TABLE employee ADD image blob;


查看表结构的定义
mysql>DESC employee;


修改job列,使其长度为60。
mysql>ALTER TABLE employee MODIFY job varchar(60);


删除image列。
mysql>ALTER TABLE employee DROP image;


表名改为user。
mysql>RENAME TABLE employee TO user;


查看表的创建细节
mysql>SHOW CREATE TABLE user;


修改表的字符集为gbk
mysql>ALTER TABLE user CHARACTER SET gbk;


列名name修改为username
mysql>ALTER TABLE user CHANGE name username varchar(100);


三、DML:Data Manipulation Language 数据操作语言


作用:操作表中的数据的。
关键:INSERT UPDATE DELETE

特别注意:日期或字符串、字符要使用单引号引起来。

查看表中的所有记录
mysql>SELECT * FROM user;


使用insert语句向表中插入三个员工的信息。
建议:mysql>INSERT INTO user (id,username,gender,birthday,entry_date,job,salary,resume) VALUES (1,'zql','0','1991-09-07','2013-04-
12','CTO',10000.00,'beauty');
mysql>INSERT INTO user VALUES (2,'gfy','1','1987-09-07','2013-04-12','CEO',10000.00,'hand');
mysql>INSERT INTO user (id,username,gender,birthday,entry_date,job,salary,resume) VALUES (3,'王翔云','1','1989-09-07','2013-04-12','UFO',10000.00,'good
boy');

插入中文时的问题:(编码问题)
查看数据库目前的各种编码:

mysql>SHOW VARIABLES LIKE 'character%';

通知服务器客户端使用的编码字符集
mysql>SET character_set_client=gbk;


显示时乱码
mysql>SET character_set_results=gbk;

四、DQL简单的:Data Query Language
关键字:SELECT

eg;查询表中所有学生的信息。


mysql>SELECT * FROM student;(不建议使用)
mysql>SELECT id,name,chinese,english,math FROM student;


查询表中所有学生的姓名和对应的英语成绩。
mysql>SELECT name,english FROM student;


过滤表中重复数据。
mysql>SELECT DISTINCT english FROM student;

SELECT语句支持一些基本的运算

在所有学生数学分数上加10分特长分。
mysql>SELECT id,name,math+10 FROM student;
统计每个学生的总分。
mysql>SELECT name,chinese+english+math FROM student;
使用别名表示学生分数。
mysql>SELECT name AS 姓名,chinese+english+math 总分 FROM student;
查询姓名为王五的学生成绩
msyql>SELECT name,english,chinese,math FROM student WHERE name='王五';
查询总分大于200分的所有同学
mysql>SELECT name,chinese+english+math FROM student WHERE (chinese+english+math)>200;

WHERE语句支持运算表达式

Like语句中,% 代表零个或多个任意字符,_ 代表一个任意字符,例first_name like ‘_a%’;

五、数据完整性


三个方面:
1、实体完整性:规定表中的一行在表中是唯一的实体。
     一般是通过定义主键的形式来实现的。
    关键字:PRIMARY KEY
    特点:不能为null,必须唯一

CREATE TABLE SHANG_HAI1(
id int PRIMARY KEY,
name varchar(100)
);
//实际中不建议使用。
CREATE TABLE shanghai2(
id int PRIMARY KEY auto_increment,
name varchar(100)
);
insert into shanghai2 (name) values('aa');
2、域完整性
指数据库表的列(即字段)必须符合某种特定的数据类型或约束。
NOT NULL:不能为空
UNIQUE:必须唯一
CREATE TABLE shanghai3(
id int PRIMARY KEY,
name varchar(100) NOT NULL,
idnum varchar(100) unique
);

关于主键:
(建议)逻辑主键:给编程人员用的。与具体业务无关
业务主键:用户也可以用。与具体业务有关了。

3、参照完整性(多表设计)
一对多
create table department(
id int primary key,
name varchar(100)
);
create table employee(
id int primary key,
name varchar(100),
salary float(8,2),
dept_id int,
constraint dept_id_fk foreign key(dept_id) references department(id)
);

多对多
create table teacher(
id int primary key,
name varchar(100),
salary float(8,2)
);
create table student1(
id int primary key,
name varchar(100),
grade varchar(10)
);
create table teacher_student1(
t_id int,
s_id int,
primary key(t_id,s_id),
constraint t_id_fk foreign key(t_id) references teacher(id),
constraint s_id_fk foreign key(s_id) references student1(id)
);

一对一
create table human(
id int primary key,
name varchar(100)
);
create table idcard(
id int primary key,
num varchar(100),
constraint huanm_id_fk foreign key(id) references human(id)
);

 

 

gegege~

转载于:https://www.cnblogs.com/lifelinecc/p/chen.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值