SQL包含哪些内容
SQL主要包含两部分内容:
数据定义语言(Data Definition Language, DDL)
负责数据结构定义与数据库对象定义的语言。新建、更改或者删除数据库表等对数据库表的 *** 作都属于数据定义语言的范围。
数据 *** 纵语言 (Data Manipulation Language, DML)
负责对数据库对象运行数据访问工作,包括查询、插入、更新与删除数据,是进行数据 *** 纵时与数据库系统交互的指令。
安装MySQL Server
学习具体的SQL语法之前,我们先熟悉一个开源的数据库实现MySQL。在熟悉MySQL的过程中来学习SQL语法,能够让我们看到实际的 *** 纵效果,加深我们的理解。我们先来装MySQL服务器吧。
我们选择MySQL的开源社区版——MySQL Community Server。在MySQL官方下载页面选择合适的平台和版本,进行下载。
Mac环境
Mac环境我们一般选择DMG格式的安装包,下载完成后,按提示进行安装即可。
Windows环境
Windows环境下,我们根据系统选择相应的ZIP格式安装包。
下载完成后解压到合适的位置中,我们将解压后的地址假设为MYSQL_HOME。解压完成后,我们需要将MySQL的bin目录添加至环境变量Path中。进入控制面板 -> 所有控制面板项 -> 系统 -> 高级 -> 环境变量,在Path后添加;MYSQL_HOME/bin,修改环境变量的详细步骤不再赘述,可参照Java开发环境安装与配置。
验证MySQL Server
安装完成后,我们打开命令行,通过以下命令查看是否安装成功:
mysql --version
如果看到类似下列Mysql信息,则说明安装成功
mysql Ver 1414 Distrib 5163, for apple-darwin1030 (i386) using readline 51
安装成功后,可以输入以下命令登录Mysql Server:
mysql -u root -p
登录成功后我们就能通过SQL语句 *** 作数据库,例如,当我们输入命令show databases;我们就能看见当前MySQL服务器下的所有数据库:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (000 sec)
这都是MySQL自带的数据库,用以保存其自身的数据。我们可以输入use mysql;进入到mysql数据库中。
输入命令show tables就能看到当前数据库中的所有表:
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| engine_cost |
| event |
| func |
| general_log |
| gtid_executed |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| innodb_index_stats |
| innodb_table_stats |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| server_cost |
| servers |
| slave_master_info |
| slave_relay_log_info |
| slave_worker_info |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
31 rows in set (000 sec)
这时我们就行进行数据库表的增删改查了。比如我们将help_category中的数据全部取出来:
mysql> select from help_category;
+------------------+-----------------------------------------------+--------------------+-----+
| help_category_id | name | parent_category_id | url |
+------------------+-----------------------------------------------+--------------------+-----+
| 1 | Geographic | 0 | |
| 2 | Polygon properties | 35 | |
| 3 | Numeric Functions | 39 | |
| 4 | WKT | 35 | |
| 5 | Plugins | 36 | |
| 6 | Control flow functions | 39 | |
| 7 | MBR | 35 | |
| 8 | Transactions | 36 | |
| 9 | Help Metadata | 36 | |
| 10 | Account Management | 36 | |
| 11 | Point properties | 35 | |
| 12 | Encryption Functions | 39 | |
| 13 | LineString properties | 35 | |
| 14 | Miscellaneous Functions | 39 | |
| 15 | Logical operators | 39 | |
| 16 | Functions and Modifiers for Use with GROUP BY | 36 | |
| 17 | Information Functions | 39 | |
| 18 | Storage Engines | 36 | |
| 19 | Bit Functions | 39 | |
| 20 | Comparison operators | 39 | |
| 21 | Table Maintenance | 36 | |
| 22 | User-Defined Functions | 36 | |
| 23 | Data Types | 36 | |
| 24 | Compound Statements | 36 | |
| 25 | Geometry constructors | 35 | |
| 26 | GeometryCollection properties | 1 | |
| 27 | Administration | 36 | |
| 28 | Data Manipulation | 36 | |
| 29 | Utility | 36 | |
| 30 | Language Structure | 36 | |
| 31 | Geometry relations | 35 | |
| 32 | Date and Time Functions | 39 | |
| 33 | WKB | 35 | |
| 34 | Procedures | 36 | |
| 35 | Geographic Features | 36 | |
| 36 | Contents | 0 | |
| 37 | Geometry properties | 35 | |
| 38 | String Functions | 39 | |
| 39 | Functions | 36 | |
| 40 | Data Definition | 36 | |
+------------------+-----------------------------------------------+--------------------+-----+
40 rows in set (000 sec)
我们看到表中有40条记录,对应于MySQL帮助信息的40个分类。注意这里只是为了让大家了解MySQL的命令行控制台的使用,一般情况下我们是不需要也不应该去修改MySQL自带的数据库。
安装MySQL Workbench
大家对SQL语法可能还不是很了解,对于通过命令行直接与数据库进行交互不太习惯。没关系,MySQL为我们提供了一个图形界面–MySQL Workbench,我们可以通过图形界面对数据库进行 *** 作。
我们首先进行MySQL Workbench 官方下载页面下载MySQL Workbench,对于Mac系统以及Windows系统都有相应的安装包,下载后直接安装即可。
使用MySQL Workbench连接数据库
打开MySQL Workbench,我们可以看到如下界面:
点击左上角的加号,创建一个新的连接,根据提示依次以下信息:
Connection Name:连接名,自定义即可 Hostname:数据库地址,我们的MySQL Server在本地,填写127001即可 Username:用户名,这里我们使用root Password:密码,如果没有设置默认密码为空
创建成功后,单击localhost即可进入数据库:
创建数据库
点击数据库按钮创建一个测试数据库:
输入数据库名称test,为了编码出现中文字符乱码的问题,在创建数据库时需要指定数据库的默认字符编码,这里我们选择字符编码default - default collation:
点击Apply,MySQL Workbench会根据你的输入自动生成SQL语句。检查SQL语句无误,再次点击Apply,即可成功创建数据库。我们可以在左下角的数据库列表中看到新建的数据库test:
创建数据库表
右键test数据库,将`test`数据库设置为此次连接的默认数据库,接下来的所有 *** 作都将在`test`数据库下进行 *** 作:
打开`test`数据库的折叠菜单,右键Tables,选择Create Table…创建数据库表:
按照提示输入数据库表的相关信息,这里我们只填以下两个信息:
数据库表名:使用test作为数据表名 字段:为test表添加一个title字段,数据类型为VARCHAR(255)
点击Apply,MySQL Workbench同样会根据你的输入自动生成SQL语句。检查SQL语句无误,再次点击Apply,即可成功创建数据库表`test`。我们可以在左下角数据库test的Tables菜单下看到我们新建的`test`表:
查看并 *** 作数据
右键test表,选择Select Rows…即可查看test表中的数据。
我们可以看到,在1区域显示了查看test表数据所对应的SQL语句,在2区域显示了test表的前1000条数据,目前`test`表中还没有任何数据:
双击2区域中的null标识,进入编辑模式,为`test`表添加第一条数据,添加完成后,单击Apply,MySQL Workbench将生成向test表插入一条数据的SQL语句。再次点击Apply,执行SQL语句,成功将数据插入`test`表。
再次右键test表,选择Select Rows…,查看test表中的数据,发现test表中有一条记录。
当我们通过web界面对数据库进行 *** 作时,我们可以通过MySQL Workbench随时查看我们的 *** 作是否正确。
通过SQL语句与数据库交互
无论我们对数据库进行何种 *** 作,MySQL Workbench实际上都会帮我们转化为SQL语句。当然,我们还可以直接告诉MySQL Workbench最终的SQL语句,MySQL Workbench直接执行即可。
单击坐上角create new sql tab…按钮,将出现一个新的窗口:
在窗口中输入希望运行的SQL语句,单击运行按钮即可:
附上出处链接:>
1、打开Navicat for MySQL,并登录到指定数据库。
2、点击上方查询。
3、点击新建查询。
4、在空白处写上视图创建语句,点击左上方执行即可。
没安装SQL服务器。
数据库 *** 作失败对象名worker失败的原因可能是没正确安装SQL服务器。
数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
1、创建Worker执行;
2、进入阻塞队列。
1、第一个进来的Runnable对象,也就是创建Worker的那个,会被Worker执行;
2、从阻塞队列中take取出Runnable对象。
注意⚠️:Worker并不会在等待过程中处理非第一个Runnable对象,也就是说旧Worker不会执行新进来的Runnable对象,除非他来自阻塞队列。
当核心线程数为4、最大线程数为10、阻塞队列最大长度为20
此时如果有Runnable线程任务进来,则会判断workerCountWorker的数量、maxThreadCount最大线程数和阻塞队列大小。进行具体分析在做 *** 作。
答案:分配核心线程数4个,其他后续任务进入阻塞队列。
答案:不一定,如果workerCount < coreThreadCount,则早来早执行;如果workerCount = coreThreadCount并且阻塞队列未满,则早来早执行,如果此时阻塞队列满了,则后来的任务会先执行。
方案1:针对支持html5 webworker的现代浏览器方案:。
代码1你的大量计算,放到一个js文件中。如下:
//jobjsonmessage =function (evt){ //do massive job在这里你进行大量耗时的计算过程。 postMessage( data );//将计算结果的数据发送会主线程}
你的页面代码:
<!DOCTYPE HTML><html><head> <meta >
Web Worker 的作用,就是为 JavaScript 创造多线程环境,允许主线程创建 Worker 线程,将一些任务分配给后者运行。在主线程运行的同时,Worker 线程在后台运行,两者互不干扰。等到 Worker 线程完成计算任务,再把结果返回给主线程。这样的好处是,一些计算密集型或高延迟的任务,被 Worker 线程负担了,主线程(通常负责 UI 交互)就会很流畅,不会被阻塞或拖慢。
Worker 线程一旦新建成功,就会始终运行,不会被主线程上的活动(比如用户点击按钮、提交表单)打断。这样有利于随时响应主线程的通信。但是,这也造成了 Worker 比较耗费资源,不应该过度使用,而且一旦使用完毕,就应该关闭。
Web Worker 有以下几个使用注意点。
(1)同源限制
分配给 Worker 线程运行的脚本文件,必须与主线程的脚本文件同源。
(2)DOM 限制
Worker 线程所在的全局对象,与主线程不一样,无法读取主线程所在网页的 DOM 对象,也无法使用document、window、parent这些对象。但是,Worker 线程可以navigator对象和location对象。
(3)通信联系
Worker 线程和主线程不在同一个上下文环境,它们不能直接通信,必须通过消息完成。
(4)脚本限制
Worker 线程不能执行alert()方法和confirm()方法,但可以使用 XML>
以上就是关于有关mysqlworkbench的使用问题,我在root权限下对某数据库新建了student,teacher,dean三个用户权限全部的内容,包括:有关mysqlworkbench的使用问题,我在root权限下对某数据库新建了student,teacher,dean三个用户权限、mysql中如何建立视图、数据库 *** 作失败对象名worker失败等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)