MySQL笔记(一)

MySQL

    • 学习地址
    • 终端操作数据库

学习地址

课程:一天学会 MySQL 数据库
笔记:香草味的橙子

终端操作数据库

1.如何查看有什么数据库?    

show databases;

2.如何选择数据库?   

use databasesName;

3.如何查看该数据库中有哪些表?   

show tables;

4.如何查询表中的数据?   

select * from tableName;

5.如何退出数据库服务器?

exit;

6.如何在数据库服务器中创建自己的数据库?   

create database databaseName;

  7.如何创建一个数据表? 创建一个pet表

create TABLE pet(
name VARCHAR(20),
owner VARCHAR(20),
specise VARCHAR(20),
gender CHAR(1),
brith DATAE,
death DATE );

  注意事项:
                 1:var()与varchar()的区别在于var()是定常的,哪怕存储的字符串没有达到"()"中数字的上限,var()依然会占用空格来填充空间.而varchar()则是不定长的,没有达到"()"中的上限则会自动去掉后面的空格;
                 2:性别不要用:sex 要用:gender  一个是性 一个是性别;
                 3:定义最后一个字段的时候不要加",";
                 4:上面的"VAR","VARCHAR","DATE"可以用小写.不过最好用大写来表示区分关键字,若不然也许写到后面你自己都不知道这个词是数据库中的关键字还是你自己自定义的一些数据,同时一定要用英文的标点符号也必须半角输入。
                 5: MySQL 数据类型:https://www.runoob.com/mysql/mysql-data-types.html
                 6:金钱最好用int/bigint(整数,单位用分,拿出来进行*100换成元),千万不要直接用浮点,会有精度损失.

8.如何查看数据表的架构?
describe tableName;

+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
 Field    :    字段的名称
Type     :    字段的类型,可以有int    var    varchar    
  Key      :    是否是关键字 如可以定义为:  primary key 或者 unique key   ...
Default: :    若是该字段没有主动设置值的时候,该字段的默认值是什么?
9.如何插入数据?

INSERT INTO pet VALUES(‘wangcai’,‘wk’,‘dog’,‘1’,‘1998-8-2’,null);

   +------+-------+---------+------+------------+-------+
   | name | owner | specise | gender     | brith           | death |
   +------+-------+---------+------+------------+-------+
   | kk       | cc       | dog      | 1        | 1998-08-02 | NULL|
   +------+-------+---------+------+------------+-------+
   注意:
       NULL:代表的是空,表示该字段还没有数据.千万不要主动填写'NULL',这代表你的字段有一个值叫做'null'.
其实还有一种写法:             
INSERT INTO pet(name,owner) VALUES ('wangcai','wk');
代表我只在name和owner字段上面插入的一条,其他皆为NULL/默认值的数据

12.mysql建表中的约束

 1.主键约束:
             它能够唯一确定一张表中的一条记录,增加主键约束之后,就可以使得字段不重复而且不为空   
             
  2.复合主键:
			说明了复合主键只要所有的字段不是都一样就行
			
 3.自增约束:
	CREATE TABLE user3(
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(20)
	);

	INSERT INTO user3(name) VALUES('张三');
	INSERT INTO user3(name) VALUES('李四');

	没有自定义id值 但是自动生成了id

4:唯一约束
	可为空,不重复;对比主键约束(不为空,不唯一)
	新增name为唯一约束:
	ALTER TABLE user5 ADD UNIQUE(name);
5:非空约束
create table user(
	id int not null,
	name varchar(20)
	);
6: 默认约束
create table user(
	id int not null,
	name varchar(20),
	age int default 10
	);

7: 外键约束
CREATE TABLE classes(
id INT PRIMARY KEY AUTO_INCREMENT COMMENT'班级表id',
name VARCHAR(20) COMMENT'班级名称'
);

CREATE TABLE student(
   id INT PRIMARY KEY AUTO_INCREMENT COMMENT'学生表id',
   name VARCHAR(20) COMMENT'学生姓名',
    class_id int COMMENT'教室id,这张表中的class_id是classes表中id的值',
    FOREIGN KEY (class_id) REFERENCES classes(id)
);

总结:
1.主表中没有的数据,在附表中,是不可以使用的.
2.主表中记录的数据现在正在被附表所引用,那么主表中正在被引用的数据不可以被删除
3.若要想删除,先将附表中的数据删除在删除主表数据
4.对于外键约束大家可以联想 省,市 来进行联想 (市必须要依赖于省,只要省还有一个市在引用,那么就不可以删除省,要不然市就没有省了. 那么我们想删除省,必须要将该省下所有的市全部删除之后,才可以删除这个省)

你可能感兴趣的:(mysql,mysql,sql,约束,教程,操作)