- 创建表(建表属于DDL语句,DDL包括 create drop alter)
create table 表名( 字段名1 数据类型 ,字段名2 数据类型,字段名3 数据类型);
语法下面这种结构更清晰
建表语句的语法格式:
create table 表名(
字段名1 数据类型,
字段名2 数据类型,
字段名3 数据类型,
….
);
表名:建议以t 或者tbl开始,可读性更强
字段名:见名知意
表名和字段名都属于标识符
创建一个学生表
学号、姓名、年龄、性别、邮箱地址
create table t_student(no int,name varchar(32),sex char(1),age int(3),email varchar(255));
删除表:(DDL操作)
drop table 表名;//当这张表不存在时,会报错!
//如果这张表存在的话,删除
drop table if exists 表名 ;插入数据insert(DML)
语法格式:
insert into 表名(字段名1,字段名2,字段名3…) values(值1,值2,值3…);
注意:字段名和值要一一对应,数量要对应,数据类型也要对应
insert into t_student (no,name,sex,age,email) values (1,'zhangsan','m',20,'zhangsan@123.com');+------+----------+------+------+------------------+| no | name | sex | age | email |+------+----------+------+------+------------------+| 1 | zhangsan | m | 20 | zhangsan@123.com |+------+----------+------+------+------------------+insert into t_student (email,name,sex,age,no) values ('lisi@123.com','lisi','f',20,2);+------+----------+------+------+------------------+| no | name | sex | age | email |+------+----------+------+------+------------------+| 1 | zhangsan | m | 20 | zhangsan@123.com || 2 | lisi | f | 20 | lisi@123.com |+------+----------+------+------+------------------+insert into t_student (no) values (3);+------+----------+------+------+------------------+| no | name | sex | age | email |+------+----------+------+------+------------------+| 1 | zhangsan | m | 20 | zhangsan@123.com || 2 | lisi | f | 20 | lisi@123.com || 3 | NULL | NULL | NULL | NULL |+------+----------+------+------+------------------+insert into t_student (name) values ('wangwu');+------+----------+------+------+------------------+| no | name | sex | age | email |+------+----------+------+------+------------------+| 1 | zhangsan | m | 20 | zhangsan@123.com || 2 | lisi | f | 20 | lisi@123.com || 3 | NULL | NULL | NULL | NULL || NULL | wangwu | NULL | NULL | NULL |+------+----------+------+------+------------------+
注意:insert语句但凡是执行成功了,那么必然会多一条记录!!!、
没有给其他字段指定值的话,默认值就是NULL。
- insert语句可以一次插入多条记录
语法格式:
insert into 表名(字段名1,字段名2,字段名3……) values( ),( ),( );
//insert语句可以一次插入多条记录insert into t_user(id,name,birth,create_time) values(1,'zhangsan','1980-10-01',now()),(2,'lisi','1981-10-01',now()),(3,'wangwu','1982-10-01',now());+------+----------+------------+---------------------+| id | name | birth | create_time |+------+----------+------------+---------------------+| 1 | zhangsan | 1980-10-01 | 2022-04-06 19:32:05 || 2 | lisi | 1981-10-01 | 2022-04-06 19:32:05 || 3 | wangwu | 1982-10-01 | 2022-04-06 19:32:05 |+------+----------+------------+---------------------+
- 给表指定默认值 ```java drop table if exists t_student; create table t_student( no int, name varchar(32), sex char(1) default ‘m’, age int(3), email varchar(255) );
insert into t_student (no) values (1);
+———+———+———+———+———-+
| no | name | sex | age | email |
+———+———+———+———+———-+
| 1 | NULL | m | NULL | NULL |
+———+———+———+———+———-+
此方法不建议
insert语句中的”字段名”可以省略
insert into t_student values(2);//错误
//注意:前面的字段名省略的话,等于都写上了!所以值也要都写上!,顺序不能变
insert into t_student values(2,’lisi’,’f’,20,’lisi@123.com’);
+———+———+———+———+———————+
| no | name | sex | age | email |
+———+———+———+———+———————+
| 1 | NULL | m | NULL | NULL |
| 2 | lisi | f | 20 | lisi@123.com |
+———+———+———+———+———————+
6. insert插入日期数字格式化:format```javaselect ename,sal from emp;+--------+---------+| ename | sal |+--------+---------+| SMITH | 800.00 || ALLEN | 1600.00 || WARD | 1250.00 || JONES | 2975.00 || MARTIN | 1250.00 || BLAKE | 2850.00 || CLARK | 2450.00 || SCOTT | 3000.00 || KING | 5000.00 || TURNER | 1500.00 || ADAMS | 1100.00 || JAMES | 950.00 || FORD | 3000.00 || MILLER | 1300.00 |+--------+---------+插入千分位(不常用)格式化数字:format(数字,'格式') 格式为$999,999select ename,format(sal,'$999,999') sal from emp;+--------+-------+| ename | sal |+--------+-------+| SMITH | 800 || ALLEN | 1,600 || WARD | 1,250 || JONES | 2,975 || MARTIN | 1,250 || BLAKE | 2,850 || CLARK | 2,450 || SCOTT | 3,000 || KING | 5,000 || TURNER | 1,500 || ADAMS | 1,100 || JAMES | 950 || FORD | 3,000 || MILLER | 1,300 |+--------+-------+
str_to_date:将字符串varchar类型转换成date类型
date_format:将date类型转换成具有一定格式的varchar字符串类型
drop table if exists t_user;
create table t_user(
id int,
name varchar(32),
birth char(10) //生日可以使用字符串
);
create table t_user(
id int,
name varchar(32),
birth date//生日也可以使用date日期类型
);
插入数据
insert into t_user(id,name,birth) values(1,'zhangsan','01-10-1999');//1999年10月1日
//报错,原因是类型不匹配,数据库birth是date类型,这里给了一个字符串varchar
怎么办?可以使用str_to_date函数进行类型转换
str_to_date函数可以将字符串转换成日期类date
语法格式:
str_to_date('字符串日期','日期格式')
mysql的日期格式:
%Y 年
%m 月
%d 日
%h 时
%i 分
%s 秒
insert into t_user(id,name,birth) values(1,'zhangsan',str_to_date('01-10-1999','%d-%m-%Y'));
str_to_date函数可以将字符串varchar转换成日期date类型数据,
//dd如果你提供的日期字符串是这个格式,str_to_date函数就不需要了!!
%Y-%m-%d
insert into t_user(id,name,birth) values(2,'lisi','1999-10-01');
date_format函数怎么用?
date_format('日期类型数据','日期格式');
这个函数通常使用在查询日期方面,设置展示的日期格式。
select id,name,date_format(birth,'%Y/%m/%d') birth from t_user;
+------+----------+------------+
| id | name | birth |
+------+----------+------------+
| 1 | zhangsan | 1999/10/01 |
| 2 | lisi | 1999/10/01 |
+------+----------+------------+
注意:数据库中有一条命名规范:
所有的标识符都是全部小写,单词与单词之间使用下划线”_”进行衔接
