SQL基本操作

SQL基本操作

1.数据库了解
1.常见数据库
MYSQL   :开源免费的数据库,小型的数据库.已经被Oracle收购了.MySQL6.x版本也开始收费。
Oracle  :收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。
DB2 :IBM公司的数据库产品,收费的。常应用在银行系统中.
SQLServer:MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用。
SQLite  : 嵌入式的小型数据库,应用在手机端。

数据库(DataBase DB)
长期保存在计算机的存储设备上的文件
按照一定规则组织起来 被用户应用的集合

数据库管理系统
使用和维护数据库的软件
保证数据库的安全性和完整性
用户通过该系统范文数据库中的数据

数据库中一行记录与对象之间的关系。
列(column):字段
行(row):一条记录(实体)

数据库管理系统通过SQL结构化查询语言)来定义和操作数据
SQL:Structure Query Language。(结构化查询语言)


数据库厂商都支持SQL标准语言(普通话)
数据库厂商在标准的基础上做出的扩展部分(方言)

* 注意:sql语句以;结尾

1.安装步骤

1.保存安装中的 数据库初始密码
2.配置环境变量
  查看隐藏文件 open .bash_profile
  创建隐藏文件 touch .bash_profile(没有这个文件 再创建新的)
  添加环境变量 export PATH=$PATH:/usr/local/mysql/bin/
  注意:要重启mysql服务
3.打开终端
  进去mysql数据库命令mysql -uroot -p
  输入保存好的初始密码(复制粘贴)
4.进来数据库 修改密码
  set password=password('新密码');
  注意:sql语句中 只有单引号 并且是英文状态下的单引号

2.数据库基本操作

  打开数据库
  mysql -uroot -p
1.创建数据库
   create database 数据库名;(默认UTF-8)

2.查看数据库
  show databases;

3.创建一个编码格式是GBK的数据
  create database 数据库名 character set GBK;

4.修改数据库字符集(编码格式)
  alter database 数据库名 character set 编码格式;

5.查看创建数据信息
  show create database 数据库名
!.注意:sql语句不区分大小写;

6.切换数据库
  use 数据库名
2.1常用数据类型:
int:整型
double:浮点型,例如double(6,2)表示最多5位,其中必须有2位小数,即最大值为999.99char:固定长度字符串类型; char(10)  10个字节 'wanglong_ _'
varchar:可变长度字符串类型;varchar(10) 'w'
text:字符串类型; 大数据文本 最大4M
blob:字节类型;保存音频 保存图片
date:日期类型,格式为:yyyy-MM-dd;
Time:   时间类型  mm:hh:ss

7.创建表
   create table 表名(
   字段1, 字段类型,
   字段2, 字段类型,
   .......
   );

8.修改表结构
  插入一列
  alter table 表名 add 名字(字段名) blob(字段类型);
  修改字段类型
  alter table 表名 modify 名字(字段名) varchar(30)(字段类型);
  删除一列
  alter table 表名 drop 名字(字段名);
  修改表名
  rename table 原表名 to 新表名;
  修改字段名
  alter table 表名 change 原字段 新字段 (字段类型);
  查看表细节
  show create table 表名;


9.删除数据库
删除前面创建的mydb3数据库
Drop database mydb3;

10.查看当前使用的数据库
select database();

11.查看当前使用的数据库
select database();

3.DML表操作(插入与删除)

1.插入数据
  INSERT INTO 表名(列名1,列名2 ...)VALUES(列值1,列值2...);
 如;
 INSERT INTO emp VALUES (11,'shundong','nan',100,'2018-04-01');
 1.insert(插入)
注意:列名与列值的类型、个数、顺序要一一对应。
      值不要超出列定义的长度。
      如果插入空值,请使用null
      插入的日期和字符一样,都使用引号括起来
2.插入部分数据
 INSERT INTO 表名 (字段) VALUES (插入的内容);
 如:
 INSERT INTO emp (id,name) VALUES (66,'nanggg');
3.批量插入
 INSERT INTO emp VALUES
 (插入的内容1),
 (插入的内容2),
 (插入的内容3);
如:
 INSERT INTO emp VALUES
 (12,'ww1','nan1',100,'2018-02-02'),
 (12,'ww2','nan2',101,'2018-02-02'),
 (12,'ww3','nan3',102,'2018-02-02');
4.修改表内容( UPDATE)
  UPDATE 表名 SET 列名1=列值1,列名2=列值2 。。。 WHERE 列名=值
  如:
  UPDATE emp SET slary=6000; --不指定就全改
  UPDATE emp SET slary=4000 WHERE name = 'nang';
  UPDATE emp SET slary=3000,gender='f' WHERE name = 'wanglong';
  UPDATE emp SET slary=slary+1000 WHERE name = 'shundong';
5.删除一条表数据(DELETE)
  语法 : DELETE FROM 表名 【WHERE 列名=值】
  如:
  DELETE FROM emp WHERE name='wanglong';
  DELETE * FROM WHERE id = 1;
6.删除整表数据
  DELETE FROM 表名;

4.表操作(查询)

1.查询表数据(SELECT) 
  SELECT * FROM 表名;
2.条件查询
  条件查询就是在查询时给出WHERE子句,在WHERE子句中可以使用如下运算符及关键字:
  =、!=、<>、<、<=、>、>=;   (!= 和 <> 一样)
  BETWEEN…AND; 范围查询 age BETWEEN 18 AND 30IN(set); 固定的范围之内 用逗号隔开
  IS NULL;(是空) 
  IS NOT NULL(不是空)
  AND;(与)
  OR;(或)
  NOT; (非)
1.查询实例

  (1)年龄大于20岁(只显示年龄和姓名)
     SELECT name 姓名  ,age 年龄 FROM stu WHERE age=20;
 (2)查询性别为女,并且年龄50的记录
    SELECT * FROM stu WHERE gender='f' AND age=21;
 (3)查询学号为3,或者姓名为wanglong的记录
    SELECT * FROM stu WHERE id=3 OR name='dingpeng5';
 (4)查询学号为1,2,3的记录
    SELECT * FROM stu WHERE id IN(1,2,3);
 (5)查询学号不是1,2,3的记录
    SELECT * FROM stu WHERE id NOT IN(1,2,3);
 (6)查询年龄为null的记录
    SELECT * FROM stu WHERE age IS NULL;
 (7)查询年龄在20到40之间的学生记录
    SELECT * FROM stu WHERE age>= 20 AND age<=40;
    SELECT * FROM stu WHERE age BETWEEN 20 AND 40;
  (8)查询性别非男的学生记录
    SELECT * FROM stu WHERE gender !='n';
  (9)查询姓名不为null的学生记录
    SELECT * FROM stu WHERE name IS NOT NULL;
  (10)过滤重复数据
    UPDATE stu SET age=22 WHERE id=2;
    SELECT DISTINCT age FROM stu;
  (11)增加字段 薪金和佣金使用int 类型 并插入数据
    ALTER TABLE stu ADD xingjing INT ;
    ALTER TABLE stu ADD yongjing INT ;
    UPDATE stu SET xingjing=6000;
    UPDATE stu SET yongjing=7000;
  (12)查询佣金和工资之和
    查询结果相当于增加了一个新的字段(不会对原表进行修改)
    给字段起别名 as 关键字 该关键字可以省略
    系统关键字不能当字段名
     SELECT *,xingjing+yongjing as total FROM stu;
注意:因为sal和comm两列的类型都是数值类型,所以可以做加运算。如果sal或comm中有一个字段不是数值类型,那么会出错。
SELECT *,sal+comm FROM emp;
注意:任何数值和null值相加 都是null值
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值