数据库笔记

基本概念 理清一些以前的误区 数据库的特点 数据库服务的启动和关闭 net stop rufusql net start rufusql 登录数据库 可以用它自带的命令行 但这样是默认以root用户的身份进去的 所以我们可以打开命令行窗口,用mysql指令进入,这样可以指定用户名和密码 本来中间还有个指定IP的命令行参数,但这里默认不填,就自动连接到localhost的3306端口了。 命令后面都要加分号!真是神奇!! 常用命令 查看当前所有的数据库:show databases; 打开指定的库:use 库名; 查看当前的所有表:show tables; 查看当前所在库:select database(); 查看其他库的所有表:show tables from 库名; 创建表:create table 表名(列名 列类型,列名 列类型); 查看表结构:desc 表名; 保存的时候的文件格式是sql. 各种语言(一览全局) DQL语言学习(数据库查询语言) 基础查询 #基础查询,查询一列 select 列表 from 表名;(如 select name from stuinfo) #查询多列 select xxx,xxx,xxx from 表名; #查询所有 select * from 表名; #查询常量、表达式(像这种后面没写from的都是直接起一个显示作用,不是真正存在于某张表里的数据) select 100; select 100%98; select version(); #在这里单引号和双引号都是一样的 select 'john'; #还可以起别名 select 100%98 as 结果; select last_name as 姓,first_name as 名 from employees; #也可以省略as变成空格 select 100%98 结果; #当遇到奇怪名字时,最好使用引号包裹 select salay as 'out put' from employees; #去重查询,查出来的东西不重复 select distinct department_id from employees; #+号的作用,在mysql只能充当运算符,不能用于字符串拼接 #sql中的字符串拼接,可以拼接多个 select concat('a','b','c') as 结果; select concat(last_name,first_name) as 姓名 from employees; #显示表的结构 desc 表名; #ifnull语句 ifnull(x1,x2) 意思是,如果要查询的x1为零则返回x2,可以嵌套放入语句中 select ifnull(commission_pct,0) as 奖金率 from employees; select concat("奖金率:",ifnull(commission_pct,0)) from employees 条件查询 #选出工资大于12000的人的所有信息 select * from employees where salary>12000; #选出id不等于90的人的id和名字 select last_name,department_id from employees where department_id<>90; #选出工资介于10000到12000的人的所有信息 select * from employees where salary>10000 and salary<12000; #选出含有字符a的人的人名,这里%是通配符 select last_name from employees where last_name like '%a%'; #这里查询的字符里面支持转义 select last_name from employees where last_name like '_\_%'; #between and是自带上下限的,大的放前面小的放后面 select * from employees where employee_id between 120 and 100 #in就是判断元素是否属于in列表中的某一项 select * from employees where job_id in('IT_PROT','AD_VP'); #IS NULL 和 IS NOT NULL(WHERE IS 12000这种写法错误,salary == null这种写法也是错误的) select * from employees where salary is null; 排序查询 #关键是使用order by语句 select * from employees order by salary desc; #还可以和条件语句同时使用 select * from employees where department_id>=90 order by hiredate asc #order by还可以对表达式,别名,函数排序 后面的由于下载了老师的代码,格式质量会大升级!...

October 16, 2021 · 20 min · Rufus