数据库

使用数据库的优点:
(方便数据管理)
1.降低存储数据的冗余度
2.更高的数据一致性
3.存储的数据可以共享
4.可以建立数据库所遵循的标准
5.便于维护数据完整性
6.能够实现数据的安全性

数据库的数据模型:
1.层次模型 2.网状模型 3.关系模型 4.对象模型

表之间的关系类型:
1.一对一关系(很少用) 2.一对多关系(常用) 3.多对多关系

关系型数据库管理系统(SDBMS)类型:
1.本地数据库管理系统 2.数据库服务器管理系统

SQL是结构化查询语言的英文缩写,是一种用于管理关系型数据库,并与数据库
中的数据进行通讯的计算机语言。

SQL语句分为:
1.数据定义语言(DDL) 2.数据查询语言(DQL) 3.数据操作语言(DML)
4.数据控制语言(DCL)

创建使用数据库:
CREATE DATABASE 数据库名;
USE 数据库名;
删除数据库:
DROP DATABASE 数据库名;
创建表:
CREATE TABLE 表名;
删除表
DROP TABLE 表名;
复制表
SELECT * INTO 要复制到的表名 FROM 要复制的表名;
创建索引
CREATE INDEX 索引名 ON 表名(列名一,列名二,…)
删除索引
DROP INDEX 表名.索引名
ALTER TABLE 表名 DROP INDEX 索引名

 

数据完整性分类:
1.实体完整性 :保证一行数据是有效的 (主键约束:默认包含非空约束,和唯一约束)
2.域完整性: 保证一列数据是有效的 (非空约束,默认约束,检查约束(MySQL不支持))
3.引用完整性: 保证引用的编号是有效的 (外键约束)(没有建立外键约束不等于没有外键)
4.用户自定义完整性: 保证自定义规则

— create database demo;
— use demo;

— DROP TABLE t_student;
— drop table t_class;

/*
create table t_class(
c_id integer AUTO_INCREMENT,
c_name varchar(100),

primary key(c_id)
)engine = INNODB;

CREATE TABLE t_student(
s_id INTEGER AUTO_INCREMENT,
s_name VARCHAR(100),
s_c_id integer,

PRIMARY key(s_id),
constraint FOReign key(s_c_id) REFERENCES t_class(c_id)
)ENGINE = INNODB;
*/

— 添加数据
— insert into t_class(c_name) values (‘三年三班’);
— insert into t_class(c_name) values (‘三年六班’);

— INSERT INTO t_student(s_name, s_c_id) VALUES (‘王五’,1);

— 设置主键自增长的起始值
— alter table t_class AUTO_INCREMENT = 100

— 删除唯一约束
— ALTER TABLE t_class DROP CONSTRAINT 有唯一约束的列名;

— 删除外键约束
— ALTER TABLE t_student DROP FOREIGN KEY 作为外键的列名;

— 增加主键
— ALTER TABLE t_class CHANGE c_id c_id INT PRIMARY KEY;

 

数据库的查询操作基本分类:
1.投影操作 2.选择操作 3.排序操作

投影操作:

SELECT 列名列表 FROM 表名;
SELECT * FROM 表名;(查询整个表)
SELECT 列名 AS 新列名 FROM 表名;(查询列显示新的列名)
SELECT DISTINCT 列名 FROM 表名;(排除重复数据)
SELECT CONCAT(列名1,’-‘,列名2,’-‘,列名3) AS ‘标题’ FROM 表名;(字符串连接)
SELECT 列名 FROM 表名 LIMIT 开始序号,返回行数; (返回限定行查询)

选择操作:

SELECT 列名 FROM 表名 WHERE 条件;
SELECT 列名 FROM 表名 WHERE 条件 AND 条件;(和)
SELECT 列名 FROM 表名 WHERE 条件 OR 条件;(或)
SELECT COUNT(*)AS ‘标题’ FROM 表名 WHERE 条件;(统计满足条件的个数)
SELECT 列名 FROM 表名 WHERE 条件 BETWEEN 上限 AND 下限;
SELECT * FROM 表名 WHERE age IN(11,13,14) ;(找出指定范围的)
SELECT * FROM 表名 WHERE age NOT IN(11,13,14)(找出不在指定范围的) ;

SELECT 列名 FROM 表名 WHERE 条件 LIKE ‘_%’;(模糊查询)
转义符 ‘%50p%%’ ESCAPE ‘p’ 或者 ‘%50<Escape Char>%%’ 或者 ‘%50[%%’

SELECT 列名 FROM 表名 WHERE 列名1 IS NOT NULL;(查询测试列名1不为空)
SELECT 列名 FROM 表名 WHERE 列名1 IS NULL;(查询测试列名1为空)

排序操作:

SELECT 列名 FROM 表名 ORDER BY 列名 ASC(升序);
SELECT 列名 FROM 表名 ORDER BY 列名 DESC(降序);

SQL的执行顺序:
1.FROM 2.WHERE 3.GROUP BY 4.SELECT 5.HAVING 6.ORDER BY

 

— 简单查询语句的标准结构
— select column1,column2,column3 from t_name where column1 > 18 order by column1 asc; — desc

— drop database demo;
— create database demo;
— use demo;
/*
create table student(
id int primary key auto_increment,
`name` varchar(255) not null,
age int,
gender char(2),
address varchar(255) default ‘成都市’
)charset=utf8;
*/
/*
insert into student(name, age, gender) values
(‘张三’, 17, ‘男’),
(‘李四’, 19, ‘男’),
(‘王五’, 23, ‘女’),
(‘张月’, 22, ‘男’),
(‘戴维’, 30, ‘男’),
(‘何莎莎’, 22, ‘女’),
(‘王丹’, 20, ‘女’),
(‘刘唐远’, 24, ‘男’),
(‘于洋’, 15, ‘男’),
(‘聂凤涛’, 39, ‘男’);
*/
— select id,name,age,gender from student where age >18 order by age,name,id;

— select id as ‘编号’, name as ‘学生姓名’, age as ‘年龄’, gender as ‘性别’ from student;

— select age+10 as ‘十年后多大’, name as ‘姓名’ from student;

— update student set gender = ‘女’ where id = 4;

— select distinct age,gender from student; — 过滤重复数据,多个列时,使用组合匹配

— select concat(name,’-‘,gender,’-‘,age) as ‘学生信息’ from student;

— select id, name, age, gender from student limit 5;

— select id, name, age, gender from student limit 4,2;

— select * from student where name != ‘张三’ or age > 18;

— select * from student where age between 15 and 22;

— select * from student where age in(15,18,22);

— select * from student where age not in(15,22);

— select id,name,address from student where address like ‘%a%%’ escape ‘a’;

select * from student where gender is null;

select * from student where name is not null;

 

原文链接:https://www.cnblogs.com/dmyzgc/p/5406227.html

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/33493

(0)
优速盾-小U的头像优速盾-小U
上一篇 2025年5月28日 09:10
下一篇 2025年5月28日 22:16

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml