02数据库之数据库基础语言(基本操作)

数据库的操作:

#创建数据库并选择uft8编码

CREATE DATABASE students CHARACTER SET utf8;

#查看数据库的字符集(utf8)

SHOW CREATE DATABASE students;

#删除数据库列表

DROP DATABASE students;

#查看数据库列表

SHOW DATABASES;

#使用数据库

USE students;

#查看当前的数据库名

SELECT DATABASE();表操作:

#属该数据库的字符集

ALTER DATABASE students CHARACTER SET utf8;

#创建学生信息表(id name sex sge address tel) #int 默认长度为11 not null 不能为空(可不加,不加的时候是可以为空) #AUTO_INCREMENT 自动增长 PRIMARY KEY 主键 配合使用 #COMMENT 注释

CREATE TABLE info( id INT(4) NOT NULL AUTO_INCREMENT COMMENT ‘学号’ PRIMARY KEY, NAME VARCHAR(20) NOT NULL COMMENT ‘名字’, sex CHAR(2) COMMENT ‘性别’, age INT(3) COMMENT ‘年纪’, address VARCHAR(100) NOT NULL COMMENT ‘地址’, tel INT(11) NOT NULL COMMENT ‘电话号码’ ); COMMENT ‘学生表’;

#查看所有的表

SHOW TABLES;

#查看建表语句及字符集

SHOW CREATE TABLE info;

#查看表结构

DESC info;

#删除表

DROP TABLE info;

#修改表名

ALTER TABLE info1 RENAME teacher;字段操作(表头):

#添加字段

ALTER TABLE teacher ADD PASSWORD VARCHAR(32) NOT NULL;

#修改字段名称(后边加有char()在进行修改名字的时候也会修改字段类型)

ALTER TABLE teacher CHANGE NAME username CHAR(10) NOT NULL;

#修改现有列的类型,长度约束

ALTER TABLE teacher MODIFY username VARCHAR(10) NOT NULL;

#删除字段

ALTER TABLE teacher DROP PASSWORD;添加外键:

#创建一个grade(id、score、sid:外键,其作用关联学生信息表)

CREATE TABLE grade(id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,score VARCHAR(10) NOT NULL,sid INT(4) NOT NULL,FOREIGN KEY(sid) REFERENCES info(id) #添加外键);

#创建表的时候没有外键,创建外键 将grade下的sid作为外键连接到info的主键id上 fk_info_grade是别名

ALTER TABLE grade ADD CONCURRENT fk_info_grade FOREIGN KEY(sid) REFERENCES info(id);

(id)可以唯一的确定表中的某一条记录。特点:唯一(不能重复),并且不能为空。 一个表里只能有一个主键。 设计表的时候,通常我们会新增一个字段(没有意义的字段)去做主键。不去做修改。是表的标识。 主键是 int 类型的,我们可以给他设置自动增长(假设插入一条记录的时候,主键没有认为的设置值。会自己顺序去+1 生成新的内容,添加到主键这个字段中。)

添加外键需要注意的问题 :

1、如果从表要去添加一个外键约束。要求主表被引用的字段是主键。或者唯一的约束。通常使用主键。 2、如果要删除主表中的数据。要求在从表中没有引用,才可以去删除。 3、如果要向从表中去添加数据。要求在主表中,要有对应的数据。才可以去添加。 4、如果要删除表。要先删除从表。然后去删除主表。 5、新建表的时候。需要先去创建主表,然后去创建从表。

唯一约束与主键的区别:

唯一约束(了解即可) unique :不允许重复。 一个表里可以添加多个唯一约束。 写法 : 列名 类型(长度)unique

唯一和主键约束的区别 1、唯一约束可以是空(null)。 但是主键约束不能为空 2、一张表中只能有一个主键,但是唯一约束可以有多个

插入语句(增):

#所有字段全部手工录入

INSERT INTO info VALUES(100,’zdc’,’男’,22,’王八一号’,14282848);

#录入部分字段(id自增长,不插入)

`INSERT INTO info(NAME,sex,age,address,tel)` VALUES(‘zdc1′,’男’,23,’玄龟一号’,148623542);

#批量插入

INSERT INTO info(NAME,sex,age,address,tel) VALUES(‘zdc0′,’男’,21,’玄龟一号’,148623542),(‘zdc2′,’男’,22,’玄龟一号’,148623542),(‘zdc3′,’男’,24,’玄龟一号’,148623542),(‘zdc4′,’男’,25,’玄龟一号’,148623542);复制数据到新表之中

#1.把数据插入新表(需要有一个空(新)的表)

CREATE TABLE aa(id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,NAME VARCHAR(20) NOT NULL,age INT(10));INSERT INTO aa(NAME,age) SELECT NAME,age FROM info

; #2、把数据插入到新表(新表可以不存在)

CREATE TABLE aa1(SELECT NAME,age FROM info);

#查看全部

SELECT * FROM info;更新(改):

#更新(根据id更新性别)

UPDATE info SET sex=’女’ WHERE id=1;删除(删):

#删除(根据姓名删除) #delete删除name为zdc0的信息

DELETE FROM info WHERE NAME=’zdc0′;

删除表内全部内容(truncate):

TRUNCATE TABLE 表名;TRUNCATE TABLE student ;delete删除某条信息后,再次插入值后,自增长跳过此序号(内存中会把此空间空出来),继续走下去TRUNCATE语句删除后将重置自增列,表结构及其字段、约束、索引保持不变,执行速度比DELETE语句快过滤表中重复数据(distinct):select distinct name from info;通过 as 关键字 起别名:

(as可以省略)

SELECT NAME AS 姓名 FROM info;SELECT NAME 姓名 FROM info;limit(偏移量,面试在分页中常问):

#显示前2条记录 #LIMIT 【位置偏移量,】行数

SELECT *FROM score LIMIT 2;SELECT * FROM score LIMIT 0,2;

#id从2开始往后数4行

SELECT * FROM score LIMIT 1,20;

显示前4条记录

SELECT * FROM student LIMIT 4

每页4条,显示第2页,即从第5条记录开始显示4条数据

SELECT * FROM student LIMIT 4,4where子句使用的运算符:

常用函数——聚合函数:

平均年龄

SELECT AVG(age) as 平均年龄FROM student;

总人数

SELECT COUNT(id) as 总人数 FROM student;SELECT COUNT(*) FROM student;

最大年龄

SELECT MAX(age) as 最大年龄 FROM student;

最小年龄

SELECT MIN(age) as 最小年龄 FROM student;

总年龄

SELECT SUM(age) as 总年龄 FROM student;持续更新:

读书破万卷,下笔如有神。

02数据库之数据库基础语言(基本操作)

相关文章:

你感兴趣的文章:

标签云: