select基础

来源:互联网 发布:java unicode编码 编辑:程序博客网 时间:2024/06/06 21:05

mysql的常用命令。
   1.连接数据库服务器mysql: mysql -u root -p(密码)
   2.显示数据库信息:show databases;
   3.使用数据库:use 数据库名
   4.显示表格:show tables;
   5.查看表格信息:describe + 表名
   6.创建数据库:create database 数据库名
   7.创建表:create table 表名(no int,name char)
   8.删除数据库:drop database 数据库名
   9:删除表格:drop table 表格

    今天我们讲了sql(structured query language结构化查询语言)
      增加:insert into 表名 values()
      清空:delete from 表名
      查询:select * from 表名
      注:也可以只增加某个值  insert into 表名(当个字段) values()
   
    mysql的数据类型:主要分为三种
       1.整型(数值类型)
       2.string型
           主要讲了char 和 varchar 以及 text 三种 
           其中char 和 varchar 的区别: 
              1.保存数据方面:char 不足时数据库存储的时候会自动在后面加空格  而 varchar 不会
              2.查询数据方面: 如果后面有空格在查询的时候他会自动去掉也就是没有空格  而varchar
              不会有去掉空格
              3.长度方面:varchar > char
              在列后面强制加字符 用 concat 函数
            当需要存储大文本的时候我们就要用text 因为他没有字符限制
       3.日期时间型
           主要讲了datatime,time,timestamp三种类型
          
    表结构约束:
          
        1.空约束: 语法:字段名 类型 not null
       
        2.默认约束:语法: 字段名  类型  default 默认值
         
        3.主键约束: 语法:字段名 类型,primary key(字段名);
             主键的作用:
                1. 唯一地标识一行。
                2. 作为一个可以被外键有效引用的对象。
             主键的特点:
                1.不能重复
                2.不能为空
       
        4.外键约束: 语法:foreign key() references tempTable();
       
        5.唯一性约束:语法:字段名 类型 unique
       

1.函数和操作符:
    1.比较返回值:  1=true 0=false
    2.重要的字符串函数:
        1.select concat() from 表名;
        2.select left()/right() from 表名;
        3.select length() from 表名;
        4.select trim()/ltrim()/rtrim() from 表名;
        5.select substring(str,start,end) from 表名;
        6.select replace(str,search_str,replace_str) from 表名;
    3.日期时间型函数:
        1.select now();
        2.select current_date ()//当前日期
        3.select current_time ()//当前时间
        4.select current_timestamp ()//当前时间戳
        5.select sysdate()
        6.select current_timestamp 
        7.select now() + 0;
       
2.sql 包括两种语言:
      1.数据操纵语言DML:data manipulation language
      2.数据定义语言DDL: data define language
     
    其中属于DML的有: select insert delete update
    其中输入DDL的有: create drop alter
   
    主要的主要有以下一些:
        1.去掉表里面重复的数据:  语法: select distinct 字段,字段(可以有多个) from 表名
        2.向表中添加一列:  语法:alter table 表名 add 列名 类型
        3.删除一列: 语法:alter table 表名 drop 列名
        4.添加主键: 语法:alter table 表名 drop primary key(字段)
        5.取消字段: 语法:alter table 表名 drop primary key
        6.添加别名: 语法:select name as 别名 from 表名
        7.修改列名: 语法:alter table 表名 change 字段 新字段 新字段类型
        8.修改表名: 语法:alter table 表名 rename 新表名
        9.修改字段的类型:  语法:alter table 表名 modify 列名 数据类型       
       
3.mysql的聚集函数:
    1.select count(*)  表示表中的列数 返回的是一个数值
    2.select count(某列名)  表示表中的列数但是不包括有null的那一列 返回的也是一个数值
    3.select count(distinct 列名1,列名2) 表示表中的列数但是不包括有null的那一列
        而且不包括重复的列,返回的也是一个数值

    4.取最值: 语法:select max(字段)/min(字段) from 表名
    5.取平均值: 语法:select avg(distinct 列名)  from 表名
    6.求和: 语法:select sun(列名) from 表名
   
4.查询返回指定的行数:
    语法:select * from 表名 limit 开始的前一个数字,几个数字
5.条件查询:
    语法:select * from 表名 where 字段=/</>/!=(what) and 字段=/</>/!=(what)
6.删除:
    语法:delete from 表名 where 字段=/</>/!=(what)
7.修改:
    语法:update 表名 set 字段=新值 where 字段=旧值
   
   
今天我们首先我们讲了一下 or 和 in 的用法:
    1.or: 语法:select * from 表名 where 字段=‘某值’ or 字段=‘某值’ 与 and 的用法相似;
    2.in: 语法: select * from 表名 where 字段 in(某值,某值 ......)  同or的功能
    3.not in :语法  select * from 表名 where 字段 not in(某值,某值 ......)  同or的功能

模糊查询:
    语法: select * from 表名 where 字段 like '某字%/%某字/%某字%';
   
如何查询字段值为null或者字段值不为null的数据:又名空查询
    语法: select * from 表名 where 字段 is/is not null;
   
第一范式(1NF):在关系模式R中的每一个具体关系r中,如果每个属性值 都是不可再分的最小数据单
位,则称R是第一范式的关系

第二范式(2NF):如果关系模式R(U,F)中的所有非主属性都完全依赖于组合关键字,则称关系R 是
属于第二范式的

不符合第二范式所带来的后果:
     1.数据冗余
     2.更新异常
     3.插入异常
     4.删除异常

     
如果某个字段或多个字段的值可以唯一地标识一条记录,则该字段就称为关键字。
如果一个关键字是用以区别每条记录的唯一性标志,并作为该表与其他表实现关联的,则称为主关键字或 主码。
除主关键字以外的其他关键字称候选关键字。
如有一个表,字段为:
id  firstname lastname address phone IDcard
那么id或IDcard或firstname+lastname都可以说是关键字。
其中id为主关键字,IDcard和firstname+lastname为候选关键字

第三范式(3NF):如果关系模式R(U,F)中的所有非主属性对任何候选关键字都不存在传递依赖,则称关系R是
属于第三范式的。

原创粉丝点击