2.链接MySQL服务器的命令是什么?
> mysql –u root -h 127.0.0.1 –p password
3.断开MySQL服务器的命令是什么?
mysql>quit;
4.启动MySQL服务器的命令是什么?
net start mysql
5.停止MySQL服务器的命令是什么?
net stop mysql
create database newsDB;
Query OK, 1 row affected (0.00 sec)
创建数据库
mysql> use newsdb;
Database changed
调用数据库
mysql> create table message(
-> id int primary key auto_increment,
-> title varchar(10),
-> content text(1000),
-> category_id int,
-> hits int
-> );
Query OK, 0 rows affected (0.05 sec)
创建表结构
mysql> desc newsdb.message;
查看表结构
mysql> create table comment(
-> comment_id int primary key auto_increment,
-> id int,
-> comment_content text
-> );
Query OK, 0 rows affected (0.04 sec)
创建第二个表结构
mysql> desc newsdb.comment;
查看第二个表表结构
非空约束
mysql> create table lll(
-> id int(10),
-> name varchar(32) not null
-> );
Query OK, 0 rows affected (0.02 sec)
mysql> insert into lll (id) values(1);
ERROR 1364 (HY000): Field 'name' doesn't have a default value
用 not null约束的字段不能为空值,必须给出具体数据。
唯一约束性
mysql> create table llll(
-> id int(10),
-> name varchar(32)not null,
-> email varchar(128) unique
-> );
Query OK, 0 rows affected (0.02 sec)
unique约束的字段,具有唯一性,不可重复,但可以为null 创建表,保证邮箱地址唯一(列级约束)
表级约束
mysql> create table lqy1(
-> id int(10),
-> name varchar(30) not null,
-> email varchar(128),
-> unique(email)
-> );
Query OK, 0 rows affected (0.02 sec)
mysql> insert into lqy1(id,name,email) values(1,'xlj','932834897@qq.com');
Query OK, 1 row affected (0.01 sec)
mysql> insert into lqy1(id,name,email) values(2,'xlj','932834897@qq.com');
ERROR 1062 (23000): Duplicate entry '932834897@qq.com' for key 'email'
表级约束 多字段联合约束
mysql> create table lqy2(
-> id int(10),
-> name varchar(32) not null,
-> email varchar(128),
-> unique(name,email)
-> );
Query OK, 0 rows affected (0.02 sec)
mysql> insert into lqy2(id,name,email) values(1,'xxx','qq.com');
Query OK, 1 row affected (0.01 sec)
mysql> insert into lqy2(id,name,email) values(2,'mmm','qq.com');
Query OK, 1 row affected (0.01 sec)
mysql> insert into lqy2(id,name,email) values(3,'mmm','qq.com');
ERROR 1062 (23000): Duplicate entry 'mmm-qq.com' for key 'name'
mysql>
联合约束,表示两个或以上的字段同时与另一条记录相等,则报错
插入第一条数据
插入第二条数据如果是与联合字段中的一条相同另一条相同,也是可以的
插入第三条数据,如果与联合字段都相同,则报错
表级约束可以给约束起名字
mysql> create table lqy3(
-> id int(10),
-> name varchar(30) not null,
-> email varchar(128),
-> constraint lqy3_email_unique unique(email)
-> );
Query OK, 0 rows affected (0.02 sec)
主键约束
单一主键:给一个字段添加主键约束
复合主键:给多个字段联合添加一个主键约束(只能用表级定义) 单一主键(列级定义)
单一主键(表级定义)
复合主键(表级定义)
在MySQL数据库提供了一个自增的数字,专门用来自动生成主键值,主键值不用用户维护,自动生 成,自增数从1开始,以1递增(auto_increment)
插入两行记录,id主键值会自动增加
数据库的分类
•现在世界上数据库分为3类
•关系型数据库
•RDBMS 关系数据库管理系统(Relational Database Management System:RDBMS)是指包括相互联系的逻辑组织和存取这些数据的一套程序 (数据库管理系统软件)。
•主流的数据库
•最出名的3大关系型数据库:MySQL Oracle MSSQL(sql server)
•MySQL被Oracle收购了
•非关系型数据库NOSQL 不是要取代传统关系型数据库 而是补充
•NOSQL的意思就是Not Only SQL
•产生的原因:关系型数据库太慢了!
•redis(基于内存的) mongodb(基于硬盘的) hbase(基于大数据集群的)
•NEWSQL
•近几年才出现的
•是RDBMS和NOSQL折中的数据库解决办法
•介于关系型数据库和非关系型数据库之间的数据库
•代表:MySQL8.0
•注意!!!MySQL5.7及以下是传统的关系型数据库 MySQL8.0是NEWSQL
•SQL and NOSQL
•其实底层还是关系型数据库 并优化至NOSQL的速度,并且支持两种的开发语言
注意!MySQL8.0