(一)SQL -- 基础知识
SQL是一个标准的数据库语言,是面向集合的描述性非过程化语言。
- 优点:功能强、效率高、简单易学易维护。
- 缺点:非过程化语言,大多数语言都是独立执行,与上下文无关,而大多数 应用都是一个完整的过程,显然用SQL完全实现这些功能是很困难的。
大多数数据库公司从以下两方面来解决此问题:
1)扩充SQL,在SQL中引入过程性结构
2)把SQL嵌入到高级语言中
表(TABLE)
视图(VIEW)
索引(INDEX)
同义词(SYN)
聚簇(CLUSTER)
数据库操作:
创建数据库:create database 库名 例如:create database db1 //创建一个名为db1的数据库
删除数据库:drop database 库名 例如:create database db1 //删除名为db1的数据库
查看数据库:show databases //显示所有库名
使用数据库:use 库名
重命名数据库:停止服务 -> 修改数据库所在文件夹的名称 -> 启动服务
数据表操作:
创建数据表:create table 表名 例如:create table tb1 //创建一个名为tb1的表,例如create table tb1 (id int)
删除数据表:drop table 表名 例如:drop table tb1 //删除一个名为tb1的表 drop table if exists tb5(若存在则删除)
重命名数据表:rename table 表1 to 表2
查看数据表:show tables //显示当前库中的所有表名
查看表结构:describe 表名
修改表结构:
添加字段:alter table 表名 add 列名 属性 例如:alter table tb1 add id int //给表tb1中增加一个字段id,属性为int alter table tb1 add addr varchar(10) after id(在id列后增加addr列)
删除字段:alter table 表名 drop 列名 例如:alter table tb1 drop id //删除表tb1中的id字段
修改字段名称:alter table 表名 change 列名 新列名 属性 例如:alter table tb1 change id id_new int //将表tb1的id字段名称改为id_new
修改字段属性:alter table 表名 change 列名 列名 新属性 例如:alter table tb1 change id int decimal //将表tb1的id字段属性int改为decimal
修改字段属性:alter table 表名 modify 列名 新属性 例如:alter table tb1 modify id decimal
表中数据操作(增删改查):
插入数据:insert into 表名(列1,列2) values (值01,值02),(值11,值12)
查询数据:select 列名 from 表名 where 查询条件
修改数据:update 表名 set 列名=值 where 条件
删除记录:delete from 表名 where 条件
数据复制:
创建新表 - 复制旧表结构及数据到新表 create table 新表 select * from 旧表
创建新表 - 仅复制旧表结构 create table 新表 select * from 旧表 where 1=2
创建新表 - 新旧表结构不同(新表中仅包含旧表中个别字段) create table 新表 select 列1,列2 from 旧表
复制旧表数据到新表(表结构相同)insert into 新表 select * from 旧表
复制旧表数据到新表(表结构不同)insert into 新表(列1,列2) select 列1,列2 from 旧表
grant赋予权限:
grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘密码’;
- 权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
- 当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。
- 当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
- 用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%'表示从任何地址连接。
- ‘连接口令’不能为空,否则创建失败。
- 如果带了 with grant option,那么用户testuser1可以将select ,update权限传递给其他用户( 如testuser2)。如果没带,则不能将权限传递给第三方。
例如:给所有host下的zy用户,赋予所有数据库和表的一切权限
mysql> grant all privileges on *.* to zy@'%' identified by '123456' with grant option; // %表示从任何地址连接
mysql> flush privileges; //刷新系统权限表,使以上grant生效
(一)SQL -- 基础知识的更多相关文章
- [SQL] SQL 基础知识梳理(一)- 数据库与 SQL
SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...
- [SQL] SQL 基础知识梳理(二) - 查询基础
SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(三) - 聚合和排序
SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...
- [SQL] SQL 基础知识梳理(四) - 数据更新
SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(五) - 复杂查询
SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式
SQL 基础知识梳理(六)- 函数.谓词.CASE 表达式 目录 函数 谓词 CASE 表达式 一.函数 1.函数:输入某一值得到相应输出结果的功能,输入值称为“参数”,输出值称为“返回值”. 2. ...
- [SQL] SQL 基础知识梳理(七)- 集合运算
SQL 基础知识梳理(七)- 集合运算 目录 表的加减法 联结(以列为单位) 一.表的加减法 1.集合:记录的集合(表.视图和查询的执行结果). 2.UNION(并集):表的加法 -- DDL:创建表 ...
- 常见SQL语句和SQL基础知识
引自:http://blog.csdn.net/u012467492/article/details/46790205 SQL语句考察(一) 1.查询出每门课都大于80 分的学生姓名 name k ...
- SQL 基础知识终极指南
什么是数据库? 数据库是以电子方式从系统中存储和检索的大量数据集合. 存储在数据库中的结构化数据被处理.操纵.控制和更新以执行各种操作. 行业中使用的一些流行数据库是 Oracle.MySQL.Pos ...
- sql基础知识集锦
Sql常用语法 下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT ...
随机推荐
- Magento开发基础知识之RequireJs
一.RequireJS概述 RequireJS是一个工具库,主要用于客户端的模块管理.实现异步或动态加载,从而提高代码的性能和可维护性. RequireJS的基本思想是,通过define方法,将代码定 ...
- MyBatis按时间排序
测试代码 ActivityReadExample readExample = new ActivityReadExample(); readExample.setOrderByClause(" ...
- Mac 基于Anaconda的TensorFlow安装笔记
最近在中国大学MOOC平台学习北大的曹健老师上的“人工智能实践——Tensorflow”课程,开始我的人工智能之旅.第一天,讲解如何搭建实验室环境,我是mac系统,所以只写mac系统上的实验室环境安装 ...
- [.net core]9.中间件的具体实现
查看Startup.cs的configure方法 public void Configure(IApplicationBuilder app, IHostingEnvironment env) { i ...
- 剑指offer-字符串的排列-数组-递归-动态规划-python
题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 输入描述: 输 ...
- 什么是 MicroPython ?它有什么优势?
MicroPython 和 Python 都是一类 Python 的动态语言解释器. 若是在系统里安装了 Python 解释器,例如在 Windows 或者 Linux 命令行输入 python,进入 ...
- volatile关键字?MESI协议?指令重排?内存屏障?这都是啥玩意
一.摘要 三级缓存,MESI缓存一致性协议,指令重排,内存屏障,JMM,volatile.单拿一个出来,想必大家对这些概念应该有一定了解.但是这些东西有什么必然的联系,或者他们之间究竟有什么前世今生想 ...
- vue项目1-pizza点餐系统1-利用bootstrap4制作导航栏
初次接触Bootstrap,简单谈一下理解.bootstrap是一个简单有强悍的前端框架,它是一个开源项目.当我们需要一些样式等,可以了解bootstrap的相关class.标签名称等所代表的意思,然 ...
- cherrypy
十多年来,Web 程序设计人员一直使用 CGI 将应用程序连接到 Web 服务器和另一端的 Web 浏览器.有很多理由建议使用 CGI:它可以与任何编程语言一起使用,并且它在 Web 服务器和宿主服务 ...
- Git 操作 GitHub
Git安装 https://www.cnblogs.com/taopanfeng/p/11076702.html 设置用户名(设置一次 以后就不用再设置了) git config --global u ...