3.DDL与DML语句

1.数据类型

1.        varchar(最长255)    //name varchar会报错,一定要指定长度;name varchar(10)
            可变长度的字符串

2.        char(最长255)
            定长字符串

3.        int(最长11)
            数字中的整数型。

4.        bigint
            数字中的长整型。

5.         float    
            单精度浮点型数据

6.        double
            双精度浮点型数据

 7.       date
            短日期类型

  8.      datetime
            长日期类型

   9.   clob
            字符大对象

9.        blob
            二进制大对象

2创建表

2.1

>>删除表;    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)
    );

2.2快速创建表

使用as可以把查询结果当作表创建,通常是跟select语句。

create table s as (select ename,job,sal from emp where sal >= 1250 order by sal asc limit 5);

3.插入数据

3.1常规插入 

 insert into 表名(字段名1,字段名2,字段名3...) values(值1,值2,值3);

        注意:字段名和值要一一对应。

    insert into t_student(no,name,sex,age,email) values(1,'zhangsan','m',20,'[email protected]');
    insert into t_student(email,name,sex,age,no) values('[email protected]','lisi','f',20,2);

>>字段名部分可以省略,但此时必须指定所有值

insert into t_student values(2, 'lisi', 'f', 20, '[email protected]');

>>想插入多条数据也是可以的,用逗号隔开

        insert into t_user(id,name,birth,create_time) values
        (1,'zs','1980-10-11',now()), 
        (2,'lisi','1981-10-11',now()),
        (3,'wangwu','1982-10-11',now());

>>把查询结果插入表中(很少用)

insert into dept_bak select * from dept;

>>如果该数据存在,则不插入。数据不存在,则插入。使用

insert ignore into actor values("3","ED","CHASE","2006-02-15 12:34:33")

3.2插入日期

>>sql中的日期类型可以理解为特殊的字符串

默认日期格式:

    mysql短日期默认格式:%Y-%m-%d
    mysql长日期默认格式:%Y-%m-%d %h:%i:%s

先介绍两个函数;

    str_to_date:将字符串varchar类型转换成date类型   str_to_date('字符串日期', '日期格式')
    date_format:将date类型转换成具有一定格式的varchar字符串类型。 date_format(日期类型数据, '日期格式')

实例:

insert into t_user(id,name,birth) values(1, 'zhangsan', str_to_date('01-10-1990','%d-%m-%Y'));

select id,name,date_format(birth,'%Y/%m/%d') as birth from t_user;

>>如果输入形如”1999-01-01“的字符串,sql可自动转为date形式

>>同样的,也可以不用date_format,sql会自动输出'%Y-%m-%d'形式;

获取当前时间:now(),返回一个datetime类型的当前时间

insert into m values("sha",now());

4.修改数据 DML

格式:update 表名 set 字段名1=值1,字段名2=值2,字段名3=值3... where 条件;

>>where很重要,不限制条件就所有行都改了

update t_user set name = 'jack', birth = '2000-10-11' where id = 2;

5.删除数据DML

格式:delete from 表名 where 条件;  (这种删除慢,真实储存空间不会释放)

>>同样,没有条件,整张表的数据会全部删除!

delete from m where name = 'sad';

delete from t_user; // 删除所有!

>>快速删除表中数据,用truncate  (DDL操作)

truncate table dept_bak; 

猜你喜欢

转载自blog.csdn.net/weixin_44593786/article/details/121165716