mysql学习笔记(一)------数据库和表

一、启动服务

1. 图标启动
2. 进程服务启动:win+r ,输入services.msc

二、连接mysql

1. win+r ,输入cmd,在命令行内输入:mysql -u root -p  (u 是用户 p 是输入密码)

2. win+r ,输入cmd,输入:mysql -h localhost -P 3306 -u root -p(-h homename-->localhost, -p port-->3306, -u username-->root, -p password)

3. (window)开始菜单,mysql文件夹,找MySQL Command Line Client 启动,输入密码

三、基本的sql语句(sql语句以分号结尾才能运行)

1. 对数据库的操作

(类比于,常见的excel创建写入和存储)

  1. 显示所有的数据库文件(类比于打开文件夹看到所有的Excel文件)
    语法:show databases;
    > show databases; 
    
  2. 创建数据库(当成创建Excel)
    语法:create database 数据库名称;
    > create database test1;
    
  3. 使用数据库(当成打开一个Excel)
    语法:use 数据库名称;
    > use test1;
    
  4. 查看数据表(相当于看看Excel中有哪些表,下面的sheet)
    语法:show tables;
    > show tables;
    
  5. 删除数据库(当成删除Excel)
    语法:drop database 数据库名称;
    > drop database test1;
    
2. 对数据库中表的操作
  1. 创建表
    (相当于在Excel中新建一个sheet,然后在sheet的首行规定每一列该填什么,如:学号,姓名,年龄,性别)

    下面语法中[]和里面的内容可以不写
    语法:create table [if not exists] 表名称(
    字段名1 列类型 [属性] [约束] [注释] ,
    字段名2 列类型 [属性] [约束] [注释] ,

    字段名n 列类型 [属性] [约束] [注释]
    )default charset=’’;
    最后一行不需要在后面加逗号,结尾注意加分号

  2. 删除表(相当于删除一个存在的sheet)
    语法:drop table 表名称;

  3. 列类型种类(数据类型)
    3.1 数值类型:整型:int、bigint…
                            浮点型:float、double…
    3.2 字符串类型:char(m)          //m是个长度数值
                                varchar(m)     //eg:varchar(20)表示20个字符,姓名,年龄一般用这个
                                text                //存文本
                                longtext         //长文本,可以存一本小说
    3.3 日期类型: date 2019-8-3
                             datetime 2019-8-3 10:05:30
                             timestamp 时间戳
                             time 10;05:30

  4. 实例1:创建班级表class1,id,姓名,年龄,性别

    #创建1班
    > create table class1(
    	id int auto_increment primary key,
    	name varchar(20),
    	age int,
    	sex char(5)
    )default charset=utf8;
    
    #auto_increment 表示自增长,随着行的增加自己自加,(是一个约束条件)
    
  5. 实例2:创建班级表class2,id,学号、姓名,年龄,性别、省份

    > create table class2(
    	id int primary key auto_increment,
    	stu_num int(11) unique not null,
    	name varchar(20) not null,
    	age int default 18,
    	sex char(6),
    	province int,
    	constraint fk_1 foreign key (province) references province(p_id)
    )default charset=utf8;
    
    #结尾设置编码,一定不要忘了(没有编码设置,中文会出乱码)
    
  6. 涉及到数据关联省份,需要先创建省份表,才能在下面引用省份的id,产生关联

    > create table province(
    	p_id int primary key auto_increment,
    	p_name varchar(20)
    )default charset=utf8;
    
  7. 属性与约束
    7.1、null: 空
    7.2、not null:不为空
    7.3、default:默认值 //eg:上面的 age int default 18, 意思就是,如果不填年龄,默认就是18岁
    7.4、unique key:唯一 //设置某个列的值是唯一的,每一个内容都是不同的(比如输入身份证号,就没有相同的,可以设置为唯一)
    7.5、primary key:主键(唯一标志,自带唯一属性和not null属性,是一个表中必须有的,一般都是数字自增)
    7.6、auto_increment:自增长(必须给主键设置,而且必须是int型的,它的数值是不会回退的:对数据的存储是很有用的)
    7.7、foreign key:外键(用来与其他表连接)
    外键的语法:constraint 给外键起个名字 foreign key (你想引用外键的列名称) references 参考表的表名(列名称,这个列名称必须另一张表的主键)

  8. 查看表的结构
    语法:desc 表名称

  9. 更改表名称
    语法:alter table 旧表名 rename as 新表名

    > alter table class1 rename as classOne;
    
  10. 添加字段
    语法:alter table 表名称 add 字段名 列类型[属性][约束]

    #给class2添加电话列
    > alter table class2 add phone varchar(20);
    
  11. 删除字段
    语法:alter table 表名称 drop 字段名

  12. 更改字段名
    语法:alter table 表名称 change 旧字段名 新字段名 列类型[属性][约束]

    #将name改为stu_name
    > alter table class2 change name stu_name varchar(20) not null;
    
  13. 更改属性
    语法:alter table 表名称 modify 字段名 列类型 [属性] [约束]

    #将学生姓名的varchar(20)改为varchar(50)
    > alter table class2 modify stu_name varchar(50) not null;
    
  14. 增加外键
    语法:alter table 你要增加外键的表名称 constraint 给外键起个名字 foreign key (你想引用外键的列名称) references 参考表的表名(列名称,这个列名称必须另一张表的主键)

  15. 实例
    操作要求:
    1.创建数据库 goods
    2.使用goods库
    3.创建商品种类表 commoditytype ,主键 ct_id,ct_name
    4.创建商品表 commodity
    * c_id 主键 自增长
    * c_name 50个字的字符串长度 不为空
    * c_madein 50个字的字符串长度 不为空
    * c_type 整型,外键关联到商品表的ct_id
    * c_inprice 整型,不为空
    * c_outprice 整型,不为空
    * c_num 整型 ,默认为100
    5.创建客户表
    * cu_id 主键 自增
    * cu_name 50个字 不为空
    * cu_phone 20个字
    * cu_sex int 默认男或者女
    * cu_address 100个字符 不为空
    6.创建订单表
    * o_id 主键,自增
    * o_cuid 整型
    * o_cid 整型
    * o_num 整型
    操作代码

    > create database goods;
    > use goods;
    > create table commoditytype(
    	ct_id int primary key auto_increment,
    	ct_name varchar(20)
    )default charset=utf8;
    
    > create table commodity(
    	c_id int primary key auto_increment,
    	c_name varchar(50) not null,
    	c_madein varchar(50) not null,
    	c_type int,
    	c_inprice int not null,
    	c_outprice int not null,
    	c_num int default 100,
    	constraint fk_2 foreign key (c_type) references commoditytype(ct_id)
    )default charset=utf8;
    
    > create table customer(
    	cu_id int primary key auto_increment,
    	cu_name varchar(50) not null,
    	cu_phone varchar(20),
    	cu_sex varchar(5) default '男',
    	cu_address varchar(100) not null
    )default charset=utf8;
    
    > create table orders(
    	o_id int primary key auto_increment,
    	o_cuid int,
    	o_cid int,
    	o_num int
    )default charset=utf8;
    







未完~~~~^_^

下一篇:mysql学习笔记(二)------数据的增删改查

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值