精华内容
下载资源
问答
  • 用于sql语句学习的数据库,含上万条数据;结构如下 --学生tblStudent(编号StuId、姓名StuName、年龄StuAge、性别StuSex) --课程tblCourse(课程编号CourseId、课程名称CourseName、教师编号TeaId) --成绩...
  • SQL语句练习(Student,Course,SC)

    千次阅读 多人点赞 2020-12-09 12:14:35
    Create table Student 主码,姓名(唯一),性别(男、女),年龄(18—25) CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, /* 列级完整性约束条件,Sno是主码*/ Sname CHAR(20) UNIQUE, /* Sname取唯一值*/ ...
    • Create table Student 主码,姓名(唯一),性别(男、女),年龄(18—25)

      CREATE TABLE Student          
      	(Sno CHAR(9) PRIMARY KEY,	/* 列级完整性约束条件,Sno是主码*/
           Sname CHAR(20) UNIQUE,		/* Sname取唯一值*/
           Ssex CHAR(2) check (Ssex in ('男','女')),
           Sage SMALLINT check (Sage between 18 and 25),
           Dept CHAR(20)
          );
      
    • Create table Course

      CREATE TABLE Course
           (Cno CHAR(4) PRIMARY KEY,
            Cname CHAR(40),            
            Cpno CHAR(4),              	                      
            Ccredit SMALLINT,
            Semester INT,
            FOREIGN KEY (Cpno) REFERENCES  Course(Cno) 
            ); 	
      
    • Create table SC

      CREATE TABLE SC
            (Sno CHAR(9), 
             Cno CHAR(4),  
             Grade SMALLINTPRIMARY KEY (Sno,Cno), 
             /* 主码由两个属性构成,必须作为表级完整性进行定义*/
             FOREIGN KEY (Sno) REFERENCES Student(Sno),
             /* 表级完整性约束条件,Sno是外码,被参照表是Student */
             FOREIGN KEY (Cno) REFERENCES Course(Cno)
             /* 表级完整性约束条件, Cno是外码,被参照表是Course*/
            );
      
    • 查询“计算机系”学生的详细信息,并按性别升序排列,相同性别按年龄降序排列

      SELECT * FROM Student 
       WHERE Dept = '计算机系'
       ORDER BY Ssex ASC, Sage DESC
      
    • 查询年龄在18-20岁之间的学生详细情况

      SELECT * FROM Student 
       WHERE Sage BETWEEN 18 AND 20
      
    • 查询所有选修了Java课程的学生情况,输出学生的姓名和系别

      SELECT Sname,Dept FROM Student S 
       JOIN SC ON S.Sno = SC.Sno
       JOIN Course C ON C.Cno = SC.cno
       WHERE Cname = 'Java'
      
    • 与刘晨在同一个系学习的学生(自连接;嵌套 IN

      SELECT S2.Sno,S2.Sname,S2.Dept FROM Student S1 
       JOIN Student S2 ON S1.Dept = S2.Dept
       WHERE S1.Sname = '刘晨' AND S2.Sname != '刘晨'
      
      SELECT Sno,Sname,Dept FROM Student
       WHERE Dept IN ( 
         SELECT Dept FROM Student 
           WHERE Sname = '刘晨')
       AND Sname != '刘晨'
      
    • 查询人数在50人以上的系,输出系别,人数,按照人数降序排列Count(sno)

      SELECT Dept,COUNT(Sno) FROM student
       GROUP By Dept
       HAVING COUNT(Sno)>50
       ORDER by COUNT(Sno) DESC /* order by 在 having 子句下方 */
      
    • 查询总成绩600分以上的学生学号,平均成绩Sum()

      SELECT s.Sno FROM Student s /* 须指明是哪个表的 Sno */
       JOIN SC ON s.Sno = SC.Sno /* 两个表都有 Sno */
       GROUP By s.Sno
       HAVING SUM(Grade)>600
      
    • 查询每个学生的平均成绩,输出学号,学生姓名,平均成绩

      SELECT s.Sno,Sname,avg(Grade)平均成绩 FROM Student s
       JOIN SC ON s.Sno = SC.Sno
       GROUP By s.Sno,Sname /* 需要学号、姓名两个因素分组 */
      
    • 查询计算机系没有选课的学生信息

      SELECT Sname,Dept,Cno,Grade FROM Student S 
       LEFT JOIN SC ON S.Sno = SC.Sno
       WHERE Dept = '计算机系' AND SC.Sno IS NULL /* 判空条件和连接条件是同属性 */
      
    • 查询选修了全部课程的学生信息

      SELECT s.Sno,Sname,Dept FROM Student s
       WHERE NOT EXISTS(	/* 2.不存在这样一个课程c.Cno,它没有被s.Sno选 */
         SELECT * FROM Course c 
          WHERE NOT EXISTS(	/* 1.不存在该学生没选的课程 */
            SELECT * FROM SC
      	   WHERE SC.Cno = c.Cno AND SC.Sno = s.Sno))
      
    • 将“计算机系”学生选修课程的成绩置为0 / 成绩加5分

      UPDATE SC 
       SET Grade = 0 /* SET Grade = Grade + 5 */
       WHERE Sno IN
         (SELECT Sno FROM Student
           WHERE Dept = '计算机系')
      
    • 删除“计算机系”全体学生“第2学期”的选课记录

      DELETE FROM SC 
       JOIN Student ON SC.Sno = Student.Sno
       WHERE Dept = '计算机系' AND Semester = 2
      

      更正

      DELETE FROM SC 
       FROM SC JOIN Student ON SC.Sno = Student.Sno
       JOIN Course ON Course.Cno = SC.Cno
       WHERE Dept = '计算机系' AND Semester = 2
      
    • 创建一个“计算机系”学生选课的视图V1,包括学号,姓名,课程名称,成绩

      将查询视图V1的权限授予用户user1

      CREATE VIEW	V1(Sno,Sname,Cname,Grade)
      AS
      SELECT s.Sno,Sname,Cname,Grade FROM Student s 
      JOIN SC ON s.Sno = SC.Sno
      JOIN Course c ON c.Cno = SC.Cno
      
      GRANT SELECT 
       ON VIEW V1 
       TO User1
      /* WITH GRANT OPTION 允许已经获得权限的用户把这种权限再授予其他用户 */
      
    • 将查询每门课程号和平均成绩的权限授权给用户Wang

      GRANT SELECT 
       ON TABLE Course,SC 
       TO Wang
      
    • 将对Student的全部访问权限授予所有用户

      GRANT ALL PRIVILEGES 
       ON TABLE Student 
       TO PUBLIC
      
    展开全文
  • 使用SQL语句建立一个数据库ST

    千次阅读 2018-10-27 23:21:58
    使用SQL语句建立一个数据库ST 数据库ST中有三张表,stu,course和sc,表格信息如下图 代码如下 create database ST use ST create table stu ( sno char(20) primary key, sname char(20), ...

    使用SQL语句建立一个数据库ST

    数据库ST中有三张表,stu,course和sc表,表格信息如下图
    stu表
    course表
    sc表
    代码如下

    create database ST
    use ST
    create table stu 
    (
      sno char(20) primary key,
      sname char(20),
      ssex char(20),
      sage smallint,
      sdept char(20)
    ) 
    create table course
    (
      cno char(20) primary key,
      cname char(20),
      cpno char(20),
      ccredit smallint,
      foreign key (cpno) references course(cno)
    )
    create table sc 
    (
      sno char(20) not null,
      cno char(20) not null,
      grade smallint,
      primary key (sno,cno),
      foreign key (sno) references stu(sno),
      foreign key (cno) references course(cno)
    )
    

    插入数据

    /*插入学生信息数据,使用insert语句*/
    insert into stu(sno,sname,ssex,sage,sdept)values('12001','李伟','男',20,'CS')
    insert into stu(sno,sname,ssex,sage,sdept)values('12002','王琳','女',20,'IS')
    insert into stu(sno,sname,ssex,sage,sdept)values('12003','郭文静','女',18,'MA')
    insert into stu(sno,sname,ssex,sage,sdept)values('12004','周静','男',19,'IS')
    insert into stu(sno,sname,ssex,sage,sdept)values('12005','李菊','女',17,'CS')
    /*插入课程信息数据*/
    insert into course(cno,cname,ccredit)values('2','数学',3)
    insert into course(cno,cname,ccredit)values('5','C语言',4)
    insert into course(cno,cname,ccredit)values('6','概率统计',3)
    insert into course(cno,cname,cpno,ccredit)values('3','数据结构','5',4)
    insert into course(cno,cname,cpno,ccredit)values('4','数据处理','2',2)
    insert into course(cno,cname,cpno,ccredit)values('1','DB_Design','3',3)
    /*插入选课信息数据*/
    insert into sc(sno,cno,grade)values('12001','1',86)
    insert into sc(sno,cno,grade)values('12001','2',90)
    insert into sc(sno,cno,grade)values('12001','3',80)
    insert into sc(sno,cno,grade)values('12001','4',75)
    insert into sc(sno,cno,grade)values('12001','5',95)
    insert into sc(sno,cno,grade)values('12002','2',90)
    insert into sc(sno,cno,grade)values('12002','3',90)
    insert into sc(sno,cno,grade)values('12002','4',90)
    insert into sc(sno,cno,grade)values('12002','5',90)
    insert into sc(sno,cno,grade)values('12003','2',56)
    insert into sc(sno,cno,grade)values('12003','3',50)
    insert into sc(sno,cno,grade)values('12003','5',90)
    insert into sc(sno,cno,grade)values('12004','2',89)
    insert into sc(sno,cno,grade)values('12004','4',55)
    insert into sc(sno,cno,grade)values('12004','5',95)
    
    展开全文
  • 查询student表中所有李姓的学生的 SQL语句怎么写1、使用left()函数来检索。表格如图:代码如下:left(b,1) 即 取 列字符的第一个字。2、使用 like 模糊查询

    查询student表中所有李姓的学生的 SQL语句怎么写

    1、使用left()函数来检索。

    表格如图:

    代码如下:

    left(b,1) 即 取 列字符的第一个字。

    2、使用 like 模糊查询


    展开全文
  • MySQL中特别实用的几种SQL语句送给大家

    万次阅读 多人点赞 2020-06-11 17:23:49
    在写SQL时,经常灵活运用一些SQL语句编写的技巧,可以大大简化程序逻辑。减少程序与数据库的交互次数,有利于数据库高可用性,同时也能显得你的SQL很牛B,让同事们眼前一亮。 目录 实用的SQL 1.插入或替换 2....

    在写SQL时,经常灵活运用一些SQL语句编写的技巧,可以大大简化程序逻辑。减少程序与数据库的交互次数,有利于数据库高可用性,同时也能显得你的SQL很牛B,让同事们眼前一亮。

    小伙伴想精准查找自己想看的MySQL文章?喏 → MySQL专栏目录 | 点击这里

    目录

    实用的SQL

    1.插入或替换

    2.插入或更新

    3.插入或忽略

    4.SQL中的if-else判断语句

    5.指定数据快照或备份

    6.写入查询结果集

    7.强制使用指定索引

    心得体会:

    (续)评论区问题反馈

    @当年经理的SQL

    @修改后最终版SQL

    @最终版SQL原理


    高能预警,这是一篇干货满满的MySQL技术文章,总有一天,你必然会用到,记得收藏! -- 来自一位被技术经理毒打多年的程序员的忠告

    实用的SQL

    1.插入或替换

    如果我们想插入一条新记录(INSERT),但如果记录已经存在,就先删除原记录,再插入新记录。

    • 情景示例:这张表存的每个客户最近一次交易订单信息,要求保证单个用户数据不重复录入,且执行效率最高,与数据库交互最少,支撑数据库的高可用。

    此时,可以使用"REPLACE INTO"语句,这样就不必先查询,再决定是否先删除再插入。

    "REPLACE INTO"语句是基于唯一索引或主键来判断唯一(是否存在)的。
    "REPLACE INTO"语句是基于唯一索引或主键来判断唯一(是否存在)的。
    "REPLACE INTO"语句是基于唯一索引或主键来判断唯一(是否存在)的。

    注意事项:如下SQL所示,需要在username字段上建立唯一索引(Unique),transId设置自增即可。

    -- 20点充值
    REPLACE INTO last_transaction (transId,username,amount,trans_time,remark) 
       VALUES (null, 'chenhaha', 30, '2020-06-11 20:00:20', '会员充值');
    
    -- 21点买皮肤
    REPLACE INTO last_transaction (transId,username,amount,trans_time,remark) 
       VALUES (null, 'chenhaha', 100, '2020-06-11 21:00:00', '购买盲僧至高之拳皮肤');


    若username='chenhaha'的记录不存在,REPLACE语句将插入新记录(首次充值),否则,当前username='chenhaha'的记录将被删除,然后再插入新记录。

    id不要给具体值,不然会影响SQL执行,业务有特殊需求除外。

    2.插入或更新

    如果我们希望插入一条新记录(INSERT),但如果记录已经存在,就更新该记录,此时,可以使用"INSERT INTO ... ON DUPLICATE KEY UPDATE ..."语句:

    • 情景示例:这张表存了用户历史充值金额,如果第一次充值就新增一条数据,如果该用户充值过就累加历史充值金额,需要保证单个用户数据不重复录入。

    这时可以使用"INSERT INTO ... ON DUPLICATE KEY UPDATE ..."语句。

    注意事项:同上,"INSERT INTO ... ON DUPLICATE KEY UPDATE ..."语句是基于唯一索引或主键来判断唯一(是否存在)的。如下SQL所示,需要在username字段上建立唯一索引(Unique),transId设置自增即可。

    -- 用户陈哈哈充值了30元买会员
    INSERT INTO total_transaction (t_transId,username,total_amount,last_transTime,last_remark) 
       VALUES (null, 'chenhaha', 30, '2020-06-11 20:00:20', '充会员') 
       ON DUPLICATE KEY UPDATE  total_amount=total_amount + 30, last_transTime='2020-06-11 20:00:20', last_remark ='充会员';
    
    -- 用户陈哈哈充值了100元买瞎子至高之拳皮肤
    INSERT INTO total_transaction (t_transId,username,total_amount,last_transTime,last_remark) 
       VALUES (null, 'chenhaha', 100, '2020-06-11 20:00:20', '购买盲僧至高之拳皮肤') 
       ON DUPLICATE KEY UPDATE total_amount=total_amount + 100, last_transTime='2020-06-11 21:00:00', last_remark ='购买盲僧至高之拳皮肤';

    若username='chenhaha'的记录不存在,INSERT语句将插入新记录,否则,当前username='chenhaha'的记录将被更新,更新的字段由UPDATE指定。

    3.插入或忽略

    如果我们希望插入一条新记录(INSERT),但如果记录已经存在,就啥事也不干直接忽略,此时,可以使用INSERT IGNORE INTO ...语句:情景很多,不再举例赘述。

    注意事项:同上,"INSERT IGNORE INTO ..."语句是基于唯一索引或主键来判断唯一(是否存在)的,需要在username字段上建立唯一索引(Unique),transId设置自增即可。

    -- 用户首次添加
    INSERT IGNORE INTO users_info (id, username, sex, age ,balance, create_time) 
       VALUES (null, 'chenhaha', '男', 12, 0, '2020-06-11 20:00:20');
    
    -- 二次添加,直接忽略
    INSERT IGNORE INTO users_info (id, username, sex, age ,balance, create_time) 
       VALUES (null, 'chenhaha', '男', 12, 0, '2020-06-11 21:00:20');


    若username='chenhaha'的记录不存在,INSERT语句将插入新记录,否则,不执行任何操作。

    4.SQL中的if-else判断语句

    众所周知,if-else判断在任何地方都很有用,在SQL语句中,"CASE WHEN ... THEN ... ELSE ... END"语句可以用在增删改查各类语句中。

    • 给个情景:妇女节大回馈,2020年注册的新用户,所有成年女性账号送10元红包,其他用户送5元红包,自动充值。

    示例语句如下:

    -- 送红包语句
    UPDATE users_info u 
        SET u.balance = CASE WHEN u.sex ='女' and u.age > 18 THEN u.balance + 10 
                             ELSE u.balance + 5 end 
                             WHERE u.create_time >= '2020-01-01'
    • 情景2:有个学生高考分数表,需要将等级列出来,650分以上是重点大学,600-650是一本,500-600分是二本,400-500是三本,400以下大专;

    原测试数据如下:


    查询语句:

    SELECT *,case when total_score >= 650  THEN '重点大学' 
                  when total_score >= 600 and total_score <650 THEN '一本'
                  when total_score >= 500 and total_score <600 THEN '二本'
                  when total_score >= 400 and total_score <500 THEN '三本'        
                  else '大专' end as status_student 
                  from student_score;

    5.指定数据快照或备份

    如果想要对一个表进行快照,即复制一份当前表的数据到一个新表,可以结合CREATE TABLE和SELECT:

    -- 对class_id=1(一班)的记录进行快照,并存储为新表students_of_class1:
    CREATE TABLE students_of_class1 SELECT * FROM student WHERE class_id=1;

    新创建的表结构和SELECT使用的表结构完全一致。

    6.写入查询结果集

    如果查询结果集需要写入到表中,可以结合INSERT和SELECT,将SELECT语句的结果集直接插入到指定表中。

    例如,创建一个统计成绩的表statistics,记录各班的平均成绩:

    CREATE TABLE statistics (
        id BIGINT NOT NULL AUTO_INCREMENT,
        class_id BIGINT NOT NULL,
        average DOUBLE NOT NULL,
        PRIMARY KEY (id)
    );

    然后,我们就可以用一条语句写入各班的平均成绩:

    INSERT INTO statistics (class_id, average) SELECT class_id, AVG(score) FROM students GROUP BY class_id;


    确保INSERT语句的列和SELECT语句的列能一一对应,就可以在statistics表中直接保存查询的结果:

    SELECT * FROM statistics;
    +----+----------+--------------+
    | id | class_id | average      |
    +----+----------+--------------+
    |  1 |        1 |        475.5 |
    |  2 |        2 | 473.33333333 |
    |  3 |        3 | 488.66666666 |
    +----+----------+--------------+
    3 rows in set (0.00 sec)


    7.强制使用指定索引

    在查询的时候,数据库系统会自动分析查询语句,并选择一个最合适的索引。但是很多时候,数据库系统的查询优化器并不一定总是能使用最优索引。如果我们知道如何选择索引,可以使用FORCE INDEX强制查询使用指定的索引。例如:

    SELECT * FROM students FORCE INDEX (idx_class_id) WHERE class_id = 1 ORDER BY id DESC;

    指定索引的前提是索引idx_class_id必须存在。
     

    心得体会:

           记得那一年,我还是个孩子,记得第一个需求是做个统计接口,查询近两小时每隔5分钟为一时间段的网站访问量,JSONArray中一共返回24个值,当时菜啊,写了个接口循环二十四遍,发送24条SQL去查(捂脸),由于那个接口,被技术经理嘲讽~~表示他写的SQL比我吃的米都多。虽然我们山东人基本不吃米饭,但我还是羞愧不已。。

           然后经理通过调用一个dateTime函数分组查询处理一下,就ok了,效率是我的几十倍吧。从那时起,我就定下目标,深入MySQL学习,日后争取嘲讽回去~~~

           筒子们,MySQL路漫漫,其修远兮。永远不要眼高手低,一起加油,希望本文能对你有所帮助。

     

    ------------------------------------------------------------- 华丽的分割线 ---------------------------------------------------------

     

    (续)评论区问题反馈

            这一周有好几个朋友在评论区评论或私信我,问我当年那条SQL是咋写的,经理是咋写的。。看大家对知识的热情这么高,我必须得开源一下了,在这贴出来当时的SQL。有个点声明,项目数据库在内网不好测试,我就模拟了一张表来给大家统计一下吧。

            需求回顾:时间就'2020-01-14 00:00:00' - '2020-01-15 00:00:00' 为准,统计当天以每10分钟为间隔的分组数据。

    @当年经理的SQL

    其中时间根据需求自行修改,由于我只生成了一天的测试数据,我就以此为例。

    SELECT DATE_FORMAT(p.createTime, '%H') as date_str,count(*) as count 
        from data_timing p
    	where DATE_FORMAT(p.createTime, '%Y-%m-%d %H:%i:%S') >= DATE_FORMAT('2020-01-14 00:00:00', '%Y-%m-%d %H:%i:%S')
    	    AND DATE_FORMAT(p.createTime, '%Y-%m-%d %H:%i:%S') < DATE_FORMAT('2020-01-15 00:00:00', '%Y-%m-%d %H:%i:%S')
    		GROUP BY HOUR(p.createTime)

    经理这条SQL查询的结果如下,基本保留了当年原版~~这条的意思是取“2020-01-14”这天24小时每小时的count。当时我很有启发,也很有感觉,发现SQL还能这么玩儿。完事儿写完他说就要撤了,说要去接孩子。我说:“大佬,咱别吃饭吃一半儿啊,再给我来一下子呗”。

    @修改后最终版SQL

    然后经过我后续修改SQL如下:

    SELECT concat( date_format( p.createTime, '%Y-%m-%d %H:' ) , floor( date_format( p.createTime, '%i' ) /10 )*10 ) as date_str
    , count(*) as count from data_timing p
        where DATE_FORMAT(p.createTime, '%Y-%m-%d %H:%i:%S') < DATE_FORMAT('2020-01-15 00:00:00', '%Y-%m-%d %H:%i:%S')
            AND DATE_FORMAT(p.createTime, '%Y-%m-%d %H:%i:%S') >= DATE_FORMAT('2020-01-14 00:00:00', '%Y-%m-%d %H:%i:%S')
            GROUP BY  concat( date_format( p.createTime, '%Y-%m-%d %H:' ) , floor( date_format( p.createTime, '%i' ) /10 ))
    

    乍一看是不是还挺复杂,并不是多复杂,只是其中几个函数内容比较多。。比如concat()里的那一堆,以及date_format那些。先看结果吧。后面跟各位说一下查询原理:

    @最终版SQL原理

    如上所述,是每隔10分钟为一个时间段,当时只能想到了以每分钟为时间段分组的SQL,如下。

    SELECT concat( date_format( p.createTime, '%Y-%m-%d %H:' ) , floor( date_format( p.createTime, '%i' ) )) as date_str
    , count(*) as count from data_timing p
    		where DATE_FORMAT(p.createTime, '%Y-%m-%d %H:%i:%S') < DATE_FORMAT('2020-01-15 00:00:00', '%Y-%m-%d %H:%i:%S')
    		AND DATE_FORMAT(p.createTime, '%Y-%m-%d %H:%i:%S') >= DATE_FORMAT('2020-01-14 00:00:00', '%Y-%m-%d %H:%i:%S')
    		GROUP BY MINUTE(p.createTime)

    查询结果:

    那我怎么以10分钟为单位呢??网上各种查,网上虚的太多。也没有找到真正有用的写法,这不是坑爹吗,后来我想了想。想到了个好主意,每10分钟的特征在于“yyyy-MM-dd HH:m”这里,如果我将“10分钟”级为单位的字符串切分出来,不管“1分钟”级的。不就能分组匹配了么,哎呀我tm真是有点佩服我自己。

    因此,按每分钟分组的SQL和上面按10分钟分组的SQL不同之处就在这里:

    group by concat( date_format( p.createTime, '%Y-%m-%d %H:' ) , floor( date_format( p.createTime, '%i' ) /10 ) )

    我将分钟'%i'除以10然后向下取整,再进行group by 分组,最后展示的时候我可以在处理一下加“ *10 ”用于展示,当然,也可以不用“*10 ”,结果如下,有点畸形,看着难受,但不妨碍使用。

     

    好了,答应各位的已经搞定啦。有细心的小伙伴会发现,咦,你这数据中,如果没查到为0的怎么不显示呢?比如凌晨1点多的,都没有显示。这样岂不是还得后台处理补全?这个问题留给大家,如果有好的方法可以在评论区留言,我会随时关注老铁们的动态的~~

     

    展开全文
  • sql语句练习50题(Mysql版)

    万次阅读 多人点赞 2017-12-19 00:11:31
    习题来源于网络,sql语句是自己写的。欢迎指正。 表名和字段 –1.学生 Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 –2.课程 Course(c_id,c_name,t_id) – –课程编号, ...
  • 1.查询Student表中的所有记录的Sname、Ssex和Class列。 2. 查询教师所有的单位即不重复的Depart列。 3. 查询Student表的所有记录。 4. 查询Score中成绩在60到80之间的所有记录。 5. 查询Score中成绩为85,86...
  • 用T-SQL语句创建数据

    千次阅读 2020-03-08 15:30:12
    用T-SQL语句创建数据 代码: CreATE TABLE Student ( Son nchar(10) NULL, Sname nchar(10) NULL, Ssex nchar(2) NULL, Sbirthday datetime NULL ) 添加信息: 创建完成! 代码: CREATE TABLE Course ( Con ...
  • SQL语句创建学生

    万次阅读 2018-11-04 15:45:50
    create table Student(  Sno char(10),  Sname varchar(20),  Ssex char(2),  Sage tinyint,  Sdept varchar(20),  ) insert into Student values('201215121','李勇','男','20','CS'), ('201215122','刘晨',...
  • 通过SQL语句创建与管理数据

    千次阅读 2019-10-09 22:32:06
    SQL语句创建Student表,Course,SCStudent表:涉及空值约束,主键约束,默认值约束,均为列级完整性约束,可直接写在在对应列后面。 create table Student( Sno char(8) not null pr...
  • SQL语句关联查询语法

    千次阅读 2021-03-03 10:11:37
    **sql语句关联查询语法** 一、外连接 1.左连接 left join 或 left outer join SQL语句:select * from student left join score on student.Num=score.Stu_id; 2.右连接 right join 或 right outer join SQL...
  • 我想知道下面的SQL语句是如何执行的? select s.*,sc1.Score [课程'01'分数],sc2.Score [课程'02'分数]from dbo.Student s, SC sc1, SC sc2 where s.S#=sc1.S# and s.S#=sc2.S# and sc1.C#='01' and sc2.C#='02' and...
  • 实验二 通过SQL语句创建与管理数据 一实验目的 (1掌握查询分析器的使用 ...通过SQL语句删除SQL语句在数据库Student_info中删除实验一创建的Student表CourseSC 2通过SQL语句创建SQL语句在数据库Student
  • 实验二 通过 SQL语句创建与管理数据 实验目的 1掌握查询分析器的使用 2掌握通过 SQL语句...用 SQL语句在数据库 Student_info中删除实验一创建的 Student表 Course SC 2通过 SQL语句创建SQL语句在数据库 S
  • SQL语句连接查询语法

    万次阅读 多人点赞 2019-07-28 09:32:13
    总结:内连接就是两个的交集 ,左外连接就是左边加两交集 ,右外连接就是右边加两交集 ...SQL语句:select * from student left join score on student.Num=score.Stu_id; 2.右连接 right join 或 r...
  • 实验二 通过SQL语句创建与管理数据 一实验目的 (1掌握查询分析器的使用 ...通过SQL语句删除SQL语句在数据库Student_info中删除实验一创建的Student表CourseSC 2通过SQL语句创建SQL语句在数据库Student
  • SQL语句创建选修表SC

    千次阅读 2018-11-04 16:00:27
    create table Student_course(  Sno char(10),  Cno char(4),  Grade tinyint,  ) insert into SC(Sno,Cno,Grade) values('201215121','1','92'), ('201215121','2','85'), ('201215121','3','88'), ('20121512...
  • 实验目的 (1)掌握查询分析器的使用。 (2)掌握通过SQL语句创建...用SQL语句在数据库Student_info中删除实验一创建的Student表、Course、SC。 2.通过SQL语句创建SQL语句在数据库Student_info中创建实...
  • 实验 实验目的 掌握查询分析器的使用 掌握通过SQL语句创建的方法 掌握通过SQL语句修改结构的方法 掌握通过SQL语句添加修改删除数据的方法 实验内容 1通过SQL语句删除SQL语句在数据库Student_info 中删除...
  • SQL语句:给添加外键的四种方式

    万次阅读 多人点赞 2020-03-08 13:04:17
    1. 创建的同时添加外键 create table score( score int(3), st_id int(16), cs_id int(16), primary key(st_id,cs_id), FOREIGN KEY (st_id) REFERENCES student(id), FOREIGN KEY (cs_id) REFERENCES classes(id)...
  • SQL语句创建数据库 关系

    千次阅读 2015-10-26 17:57:57
    use master if exists (select * from sysdatabase where name ='MySchool') --判断数据库是否存在 drop database MySchool --删除数据库 create database MySchool --创建...</pre><pre name="code" class="sql">
  • 分别用向导和SQL语句创建和删除表 用向导建立表 在数据库EDUC的分支下右击新建表出来列名数据类型是否允许空等列项根据建立表需要填的内容点击保存把表名改为相应的表明即可 用企业管理器删除所建立的表Student_...
  • 利用T-SQL语句完成以下操作: (1)修改“计算机系”姓名为“李勇”的学生姓名为“李咏”; update student set sname = ‘李咏’ where sdept=‘计算机系’ and sname=‘李勇’ (2)修改课程“数据处理”的学分为 3 ...
  • 数据库SQL语句~四连接(left join)

    千次阅读 2019-06-01 15:20:47
    LEFT JOIN 关键字会从左 (table_name1) 那里返回所有的行,即使在右 (table_name2) 中没有匹配的行。 SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name...
  • -- 空间的创建 CREATE TABLESPACE my_tabs2 DATAFILE 'd:/software/Oracle/Space/my_tabs2.dbf' size 60M AUTOEXTEND ON NEXT 30M MAXSIZE UNLIMITED; -- 创建用户 create user user2 identified by user2 default...
  • 学生 课程 成绩 教师 50个常用sql语句建表Student(S#,Sname,Sage,Ssex) 学生 Course(C#,Cname,T#) 课程 SC(S#,C#,score) 成绩 Teacher(T#,Tname) 教师---- If database exists the same name ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 122,191
精华内容 48,876
关键字:

sql语句建立student表