MySql005——使用SQL创建数据库和表(创建、选择、删除、插入)
在《中,我们使用图形化工具MySQLWorkbench创建数据库和表,下面我们将使用SQL来实现这一过程。
在《MySql000——MySql数据库管理系统的下载、安装以及使用图形化工具MySQL Workbench创建数据库和表》中,我们使用图形化工具MySQL
Workbench创建数据库和表,下面我们将使用SQL来实现这一过程
一、数据库操作
1.1、创建数据库
1.1.1、创建MySQL数据库通用写法
使用 create 命令创建数据库,语法如下:
CREATE DATABASE 数据库名;
1.1.2、最正规的写法
要使用MySQL的SQL语句来创建一个名为"study"的数据库并设置字符集为utf8,最正规的写法应如下:
CREATE DATABASE IF NOT EXISTS study CHARACTER SET utf8 COLLATE utf8_general_ci;
这个命令是这样执行的:
1、首先使用IF NOT EXISTS
子句判断当"study"数据库不存在时,然后才创建该数据库
2、同时,该数据库字符集被设置为utf8,字符集校对规则(Collation)被设置为utf8_general_ci
,这是一个常见的不区分大小写的utf8字符集校对规则。
3、请注意,这是MySQL的标准写法。
1.2、删除数据库
DROP DATABASE <数据库名>;
1.3、选择数据库
USE <数据库名>;
二、表的操作
数据库和表之间的关系是:一个数据库中包含多张表。
2.1、创建数据表
2.1.1、创建MySQL数据表的SQL通用语法
使用 create 命令创建数据表,语法如下:
CREATE TABLE table_name (column_name column_type);
/*
说明:
table_name 表名
column_name 列名
column_type 列数据类型
*/
下面使用SQL在study数据库中创建user表,user表有4个字段index、user_id、user_name、password
USE `study`; -- 选择使用study数据库
CREATE TABLE IF NOT EXISTS `user`(
`index` INT NOT NULL, -- NOT NULL设置字段不能为空,在操作数据库时如果输入该字段的数据为NULL ,就会报错。
`user_id` INT UNSIGNED AUTO_INCREMENT, -- AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
`user_name` VARCHAR(100) NOT NULL, -- VARCHAR(100)表示该字段最大字符的个数是100
`password` VARCHAR(40) NOT NULL,
PRIMARY KEY ( `user_id` ) -- PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
)ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ENGINE 设置存储引擎,CHARSET 设置编码。
/*
对UNSIGNED的特别说明:
默认的 int 类型,取值范围是 -2147483648-2147483647 之间,而 unsigned 的取值范围是 0-4294967295 之间。
默认的 int 类型,允许插入负数,unsigned 设置后,无法插入负数。
*/
2.1.2、最规范的语法
MySQL创建表的最规范的语法如下:
CREATE TABLE [IF NOT EXISTS] table_name (
column1 datatype constraints,
column2 datatype constraints,
...
[CONSTRAINT constraint_name] PRIMARY KEY (column1, column2, ...),
[INDEX index_name] (column1, column2, ...),
[FOREIGN KEY (column1, column2, ...) REFERENCES table_name (column1, column2, ...)],
...
) ENGINE=engine_name [DEFAULT CHARSET=character_set_name];
其中,方括号表示可选部分。以下是对各个部分的解释:
IF NOT EXISTS
(可选):如果指定的表名已经存在,则不会创建新表。table_name
:要创建的表的名称。column1, column2, ...
:表中的列名。datatype
:列的数据类型。constraints
:可选的列约束,如NULL
、NOT NULL
、DEFAULT
等。CONSTRAINT constraint_name PRIMARY KEY
:指定主键约束。INDEX index_name
(可选):为指定的列创建索引。FOREIGN KEY
(可选):指定外键约束,并指定参考的表和列。ENGINE engine_name
:指定表使用的存储引擎,如InnoDB
、MyISAM
等。DEFAULT CHARSET character_set_name
(可选):指定表的默认字符集。
2.2、向表中插入数据
MySQL 表中使用 INSERT INTO 语句来插入数据。
格式为:
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
/*
说明:
table_name 表名
field 列
value 列对应的值
*/
例如下面向study数据库的user表插入三条记录
INSERT INTO `study`.`user`
(`index`, `user_id`, `user_name`, `password`)
VALUES ('1', '1001', '大毛', 'w555');
INSERT INTO `study`.`user`
(`index`, `user_id`, `user_name`, `password`)
VALUES ('2', '1002', '二毛', 'w558');
INSERT INTO `study`.`user`
(`index`, `user_id`, `user_name`, `password`)
VALUES ('3', '1003', '三毛', 'w553');
-- -----------------上面也可以这样写------------------------------------
USE `study`; -- 选择使用study数据库
INSERT INTO `user`
(`index`, `user_id`, `user_name`, `password`)
VALUES ('1', '1001', '大毛', 'w555');
INSERT INTO `user`
(`index`, `user_id`, `user_name`, `password`)
VALUES ('2', '1002', '二毛', 'w558');
INSERT INTO `user`
(`index`, `user_id`, `user_name`, `password`)
VALUES ('3', '1003', '三毛', 'w553');
2.3、删除表
MySQL数据表的通用语法:
DROP TABLE table_name ;
与君共享
👉👉👉👉👉最后,有兴趣的小伙伴可以点击下面链接,这里有我整理的MySQL学习博客内容,谢谢~ 🌹🌹🌹🌹🌹
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)