MySql基础(一)数据库表的基本操作

1数据服务操作

  • 开启服务net start MySQL
  • 关闭服务 net stop MySQL
  • 登录 mysql -h 主机地址 -u 用户名 -p 密码
    如登录本机 mysql -h localhost -u root -p

2数据库的基本操作

show engines;//查看系统中所有的存储引擎,包括默认的存储引擎。

show databases;//查看系统中的所有数据库。

create database (数据库名字);创建一个数据库

drop database(数据库名字);删除一个数据库,在执行该命令时,MysQL不会给出任何提示的确认信息,执行完删除数据库后,数据库中的存储的所有数据表和数据也一同被删除,并且不可恢复。

show create database zoo \G显示数据库名和创建数据库的语句,后面为注释

image.png

上图显示数据库名和创建数据库的语句,后面为注释

3数据库表的基本操作

use database 数据库名 //选择哪一个数据库进行操作,不选择数据库,直接操作表,会报错

  • 3.1 创建数据表
create table <表明>
(
字段名1,数据类型[列级别约束条件] [默认值],
字段名2,数据类型[列级别约束条件] [默认值],
……
[表级别约束条件]
)

如在数据库zoo,创建表tb_01

mysql> use zoo;
mysql> create table tb_01
    -> (
    -> id int(11),
    -> name varchar(25),
    -> deptId int(11),
    -> salary float
    -> );
Query OK, 0 rows affected (0.22 sec)

创建成功后使用show tables 查看是否创建成功

mysql> show tables;
+---------------+
| Tables_in_zoo |
+---------------+
| tb_01         |
+---------------+
1 row in set (0.00 sec)

mysql>
  • 3.2 创建主键约束(Primary Key Caonstraint)
    主键分为单字段主键和多字段联合主键
  • 3.2.1 单字段主键
    字段名 数据类型 primary key
mysql>  create table tb_02
    -> (
    -> id int(11) primary key,
    -> name varchar(25),
    -> daptid int(11),
    -> salary float
    -> );

[constraint 约束名] primary key [字段名]

mysql>  create table tb_03
    -> (
    -> id int(11),
    -> name varchar(25),
    -> daptid int(11),
    -> salary float,
    -> primary key(id)
    -> );
  • 3.2.2 联合主键
    primary key [字段1,字段2……]
    如 创建了name和diptId两个字段的联合主键
mysql> create table tb_04
    -> (
    -> name varchar(25),
    -> deptId int(11),
    -> salary float,
    -> primary key(name,deptId)
    -> );
Query OK, 0 rows affected (0.28 sec)
  • 3.3 使用外键约束:

CONSTRAINT <外键名> FOREIGN KEY <字段> REFERENCES <主表名> <主键列>

  • 3.4定义非空约束
    指字段值不能为空,添加数据时,对于非空约束的字段,如果不赋值,会报错。
    字段名 数据类型 not null
  • 3.5使用唯一性约束
    字段名 数据类型 UNIQUE
  • 3.6 设置字段的自动属性
    字段名 数据类型 AUTO_INCREMENT
mysql> CREATE TABLE tb_01
    -> (
    -> id int(6) primary key auto_increment,//主键 加自动增长
    -> name varchar(100) ,
    -> age int(6) default 16,//默认值为16
    -> constraint sth unique(name)//设定列name为唯一约束
    -> );
Query OK, 0 rows affected (0.24 sec)

4数据库表结构

  • 4.1查看数据库表的基本信息包括字段,数据类型,是否为空,主键,默认值等。
    describe 表名
mysql> describe tb_01
    -> ;
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int(6)       | NO   | PRI | NULL    | auto_increment |
| name  | varchar(100) | YES  | UNI | NULL    |                |
| age   | int(6)       | YES  |     | 16      |                |
+-------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
        - NULL:是否可以存储NULL值
        - KEY :查看该列的索引。PRI:主键;UNI:UNIQUE索引;
                   MUI:给定值允许出现多次
        - Default:表示该列是否为默认值
        - Extra:附件信息
  • 4.2 查看表的结构的详细语句
    show create table
    如:
mysql> show create table tb_01;
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                                            |
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tb_01 | CREATE TABLE `tb_01` (
  `id` int(6) NOT NULL AUTO_INCREMENT,
  `name` varchar(100) DEFAULT NULL,
  `age` int(6) DEFAULT '16',
  PRIMARY KEY (`id`),
  UNIQUE KEY `sth` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

你可能感兴趣的:(MySql基础(一)数据库表的基本操作)