首页 > 代码库 > <11day>_数据库操作-【Mysql】

<11day>_数据库操作-【Mysql】

内容:

  1.Mysql

    程序:

      --socket客户端

        2.根据IP和端口进行连接

        3.发送指令(send):

          xxxxx

        7.接受结果

      --socket服务端

        1.运行起来

        4.获取指令(recv):

          xxxxx

        5.解析命令

          文件夹操作:

          文件操作:

          文件内容操作

        6.返回结果

----------------------------------SQL语句---------------------------------

一、文件夹操作(数据库):

    创建:

    create database db1;

    create database db1 default charset utf-8;

    删除:

    drop database db1;

    进入文件夹:

    use db1;

二、文件操作(数据表):

    创建表:

      create table tb1(

          id int,

          name char(20),

          age int,

          gender char(1)

       )

    删除表:

      drop table tb1;

----------------------------------------------------------------------------------

 1.列名

 2.数据类型

 3.是否可以为空

 4.默认值

   create table tb1(

     id int not null,  # id列不可以为空

     name char(20),

     age int default 18, # 年龄(age)默认为18

     gender char(1)

     )

 5.自增(一个表只能有一个自增列)

   create table tb1(

     id int not null auto_increment,  # auto_increment表示自增

     name char(20),

     age int default 18, # 年龄(age)默认为18

     gender char(1)

     )

 6.主键:

    约束:不能为空,不能重复

    索引:加速查找

 7.外键:

    使用外键创建数据表可以减少使用空间(一表对多表)

    约束:只能是某个表中某列已经存在的数据

    constraint xxxx foreign key (department_id) references deparment (id)

---------------------------------------创建表--单表--------------------------------

   create table userinfo (

       id int null auto_increment primary key,     # id 为列名, auto_increment代表id自增, primary key表示为主键

       name char(20),

       age int default 18 ,

       gender char(1)

   ) engine=innodb  default charset=utf8;   # engine=innodb引擎操作, 设置创建表时默认的字符集utf8

---------------------------------向表中插入数据---------------------------------

        插入数据是忽略id列

        age列可写可不写,不写默认为18

        insert into userinfo (name,age,gender) values(‘zhaosj‘,25,‘男‘);

#################################创建--多表#################################

1、创建多表的原因:

  技术分享

假设以上数据表存在硬盘上占用了12M,表示大量的浪费了磁盘空间。

2、节省资源方式创建两张表

第一张表:

技术分享

语句:

create table userinfo(

  id int not null auto_increment primary key,

  name char(20),

  age int default 18,

  gender char(1),

  department_id int,

  constraint xxxx foreign key (department_id) references deparment (id)  # 添加约束,防止出现乱的数据

) engine=innodb default charset=utf8;

添加约束说明:

这种约束称之为:外键

constraint xxxx foreign key (department_id) references deparment (id) # 添加约束语句,表示当前创建表语句中的department_id 与 deparment表中的id进行关联。其中的‘xxxx‘为约束的名字,可以随意起。

第二张表:

技术分享

语句:

create table deparment(

  id int not null auto_increment primary key,

  title char(32)

) engine=innodb default charset=utf8;

 

数据表操作:

向deparment表中插入数据:

insert into deparment (title) value (‘IT部‘);

insert into deparment (title) value (‘咨询部‘);

 

向userinfo表中插入数据:

insert into userinfo (name,age,gender,department_id) values (‘alex‘,18,‘男‘,2);  # 其中 department_id的值只能写1或者2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

三、文件内容操作(数据行):

 

<11day>_数据库操作-【Mysql】