数据库学习(五)

auto_increment   字段自动增加

在插入数据的时候,字段会自动生成唯一的序号,序号为整数类型,一般自动增加的属性是给设置pk的字段加的,而且一个表中只能有一个字段加该属性。

-->
create table t6(a int primary key auto_increment,b varchar(10));

insert into t6 (b) values('hello');
insert into t6 (b) values('hello');
insert into t6 (b) values('hello');
insert into t6 (a,b) values(10,'hello');
insert into t6 (b) values('hello');
select * from t6;

关于数据库的操作:增删改查

插入数据

插入所有列的数据

yufa1:
insert into table_name(列1,列2,。。。。。。列n)
values(值。。。。。。。);
语法2:
insert into table_name values(值1,值2,......,值n);
create table mytest(id int,name varcahr(10),age int);
insert into mytest(id,name,age) values(1001,'张三',30);
insert into mytest(id,name,age) values(1002,'李四',25);
select * from mytest;

插入表中部分列的数据

   b.插入表中部分列的数据
          语法:
          insert into table_name(列1,列2...) values(值1,值2......)
          说明:列是表中的部分列,部分数据的插入列必须写。
          -->
          insert into mytest(id,name) values(1001,'zs');
          insert into mytest(id) values(1);

         c.一次插入多条所有列的数据
           语法1:
           insert into table _name(列1~列n,所有列) values(值1~值n),(值1~值n),(值1~值n),(值1~值n);
           语法2:
           insert into table_name values(值1~值n),(值1~值n),(值1~值n),(值1~值n);
           说明:值1~值n必须是所有列的值,不能少

           -->
           insert into mytest(id,name,age) values(001,'xz',20),(002,'xl',25),(003,'xw',30),(004,'xh',26);
           -->
           insert into mytest values(100,'zx',20),(200,'lx',25),(300,'wx',30);
  
          d.一次插入多条部分列的数据
           说明:表名后必须写哪几列
           -->
          insert into mytest(id) values(1000),(2000),(3000);

          e.往表中插入查询中的结果
             语法:
             insert into table_name(f1,f2,f3.....) select f_1,f_2,f_3..... from table_name1;
             -->
             create table mytest1(id int,name varchar(20));
             将mytest表中查询的结果,插入到mytest1中
             -->
             insert into mytest1(id,name) select id,name from mytest;
             -->
             insert into mytest1(id,name) select id,age from mytest;
             说明:查询出的age对应插入到name列,类型不一致会自动转换
             -->将mytest表中id为1001的数据更新其name和age
             update mytest set name='zhangsan',age=40 where id=1001;
             -->将名字为ls的年龄更新为60
             update mytest set age=60 where name='ls';
 
(2)更新数据操作
        1)更新特定的数据
        语法:
        update table _name set f1=v1,f2=v2... where 条件
        说明:f1是列名,v1是更新的新数据值
        2)更新所有的数据
        语法:update table_name set f1=v1,f2=v2;
        说明:update语句如果没有where条件,会更新表中所有的数据
        -->更新mytest表中所有的数据,id为1001,name为zs,age为20
        update mytest set id = 1001,name='zs',age=20;
(3)删除数据操作
         1)删除特定的数据
            语法:delete from table_name where 条件;
            -->删除mytest表中id为1001的数据
            insert into mytest values(1002,'ls',30);
            insert into mytest values(1003,'ww',10);
            delete from mytest where id=1001;

         2)删除所有的数据
         语法:delete from table_name;
         -->删除mytest所有数据;
         delete from mytest;
(4)查询数据操作
        1.单表数据查询
1)简单数据查询x
    语法1:select f1,f2,f3.....from table_name;
    语法2:select * from table_name;
    -->select empno,ename,job,MGR,Hiredate,sal,comm,deptno from t_employee;
    -->select * from t_employee;
    -->select empno,ename,sal from t_employee;
    -->select empn,ename,sal from t_employee;     错误的,列名不能写错
                   1.2 distinct避免重复数据的查询
      -->查询t_employee表中职位job列的所有数据
                         select distinct job from t_employee;
     1.3 可以使用四则运算进行数据查询
( + - * /  %)
    -->查询职工表t_employee中每一个员工的年薪
         select ename,sal*12 from t_employee;
    **说明:给查询出的列重命名
                select f1 [as] other_f1 from table_name;
f1表示显示的原列名 other_f1表示显示的新列名,as可以省略
       -->select ename,sal*12 as yearsal from t_employee; 
                   1.4 设置显示格式的数据查询--concat
       concat()函数来连接字符串
       -->查询职工表t_employee中每一个员工的年薪,年薪的显示格式“员工的年薪为xx”
       select concat(ename,'的年薪为:',sal*12) yearsal from t_employee;
     -->练习:查询t_employee表中的数据,显示“我是xx,我的生日是xx号”
     select concat('我是',ename,'我的生日是',Hiredate,'号')msg from t_employee;
2)条件数据查询
3)排序数据查询
4)限制数据查询
5)统计函数和分组数据查询

发布了90 篇原创文章 · 获赞 37 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_25368751/article/details/102850854