数据库:已一定组织方式存储在一起的,能为多个用户共享,具有尽可能小的冗余度,与应用彼此独立的相互关联的数据集合。
数据库DBMS,关系型数据库,NoSQL数据库
端口号:3306
用户名:root
密码:root
1,先启动数据库服务
2,登录数据库
mysql: database:表,视图,存储过程,触发器,~~~~
mysql>select now(); #显示当前时间 select version();数据库版本
mysql>show databases; #显示当前数据库的库
mysql>use mydb;#进入某个数据库
mysql>show tables;#显示所有表 ,表显示的结构化数据
mysql>desc t_user; #显示t_user表信息
创建数据库
mysql>create database db_15;
数据库中数据字段:
数据类型:
数据库创建表语句:
mysql>create table t_student (
stuname varchar(20), #每列的数据格式设计stuage int,stuaddress varchar(100));
mysql> insert into t_student(stuname,stuage,stuaddress)values("chenshuguang",23,"上海虹口1933");
mysql> select * from t_student;
唯一性
不能修改
不能为null
mysql>create table t_student (
id int,stuname varchar(20),stuage int,stuaddress varchar(100),primary key(id) #primary key(id,name) 多个列作为主键);
mysql>create table t_student (
id int auto_increment,primary key(id));# 添加主键自增列
mysql>drop table t_student;#删除表(数据也全部删除,建议先备份,然后在drop)
约束:
导出数据:
>mysqldump -hlocalhost -uroot -proot iapp > c:/a.sql
导入数据库:
一次性插入多条语句:
where后天都是条件语句
结果是一定的,在执行时必须要考虑效率。id 主键其实是一个索引列。
删除表中数据
truncate删除表所有的数据比delete更快。
数据库表设计:
三大范式:
拆表达到解耦效果。
创建外键:
外键约束只是约束条件为学院id,但是外键列可以为null,
主表有引用,外键所在的外键表删除时不能删除,必须先删除主表中有引用的外键表中的数据:
查询:数据库中最关键的部分就是查询,开发中最重要。
数据库通过的函数
聚合函数不能加上普通的列。
oracle,sqlserver中聚合函数不能跟普通的列。直接报错。
分组查询:
子查询:
然后直接子查询就是:
数据库结构设计:ERWIN的一个软件,mysqlWorkbench也可以做出这样的UML图,或者叫做建模