JavaScriptはSQL言語ですか?

Sep 20, 2022 pm 03:25 PM
javascript

JavaScript は SQL 言語ではありません。 JavaScript は、プロトタイプ プログラミングに基づいたマルチパラダイムの動的スクリプト言語です。Web ページにさまざまな動的機能を追加して、ユーザーによりスムーズで美しいブラウジング効果を提供するためによく使用されます。一方、SQL はデータベース クエリおよびプログラミング言語です。アクセスするために使用されます。リレーショナル データベース システムのデータとクエリ、更新、管理を行います。

JavaScriptはSQL言語ですか?

このチュートリアルの動作環境: Windows7 システム、javascript1.8.5&&mysql8 バージョン、Dell G3 コンピューター。

JavaScript は SQL 言語ではありません。 JavaScript 言語と SQL 言語は 2 つの異なる言語であり、その用途も異なります。

JavaScriptとは何ですか?

JavaScript (略して「JS」) は、関数優先度を備えた軽量のインタプリタ型またはジャストインタイムでコンパイルされるプログラミング言語です。 Web ページを開発するためのスクリプト言語として有名ですが、ブラウザ以外の多くの環境でも使用されています。JavaScript は、プロトタイプ プログラミング、マルチパラダイムに基づいた動的スクリプト言語であり、オブジェクト指向、命令型、宣言型 (など) をサポートしています。関数型プログラミングとして) スタイル。

JavaScript は、インターネットに属する高級スクリプト言語です。Web アプリケーション開発で広く使用されています。Web ページにさまざまな動的機能を追加し、ユーザーによりスムーズで美しいページを提供するためによく使用されます。ブラウジング効果。通常、JavaScript スクリプトは HTML に埋め込むことでその機能を実現します。

主な機能

1. HTML ページにダイナミック テキストを埋め込みます。

2. ブラウザのイベントに応答します。

3. HTML 要素の読み取りと書き込み。

4. データをサーバーに送信する前に検証します。

5. 訪問者のブラウザ情報を検出します。作成と変更を含む Cookie を制御します。

6. Node.js テクノロジーに基づくサーバーサイド プログラミング。

JavaScriptの使い方

スクリプトのtype属性は記述する必要はありません、書きたい場合は

type="text/javascript"
ログイン後にコピー

メソッドを使用してください。 1: js

<script>
//单行注释
/*多行注释*/
//在js常见的函数
//向浏览器打印内容,类似于Java中的控制台输出语句
document.write("hello,JavaScript我来了!") ;
//还可以在浏览器中控制台中打印内容
console.log("hello,JavaScript我来了") ;
//在浏览中弹出一个提示框  
//window对象是浏览器中顶级对象,可以省略不写!
//window.alert("helloworld") ;
//简写为:
alert("helloworld") ;
</script> -->
ログイン後にコピー

の内部メソッド メソッド 2: 外部メソッド

# 実際の開発では (フロントエンド開発者が使用します!)

# 別のファイルを作成する必要があります。 js フォルダー内のサフィックス .js

js コードを記述し、js ファイルを現在の html ページにインポートします!

外部 js ファイルをインポートします

<script src="js/01.js"></script>
ログイン後にコピー

# #SQL とは何ですか?

SQL と呼ばれる構造化照会言語 (SQL) は、特殊目的のプログラミング言語です。データへのアクセスとクエリに使用されるデータベース クエリおよびプログラミング言語です。リレーショナル データベース システムを管理します。

SQL は機能的に、データ定義、データ操作、データ制御の 3 つの部分に分けることができます。

  • 1. SQL データ定義機能: データベースの 3 段階のスキーマ構造 (外部スキーマ、グローバル スキーマ、内部スキーマ構造) を定義できます。 SQL では、外部スキーマはビューとも呼ばれ、グローバル スキーマはスキーマと呼ばれます。内部スキーマはデータベース スキーマに基づいてシステムによって自動的に実装され、通常はユーザーの介入は必要ありません。

  • 2. SQL データ操作関数: 基本的なテーブルとビューのデータの挿入、削除、変更、特に強力なデータ クエリ関数が含まれます。

  • 3. SQL データ制御機能: 主にユーザーのアクセス権を制御し、システムのセキュリティを確保します。

#DDL ステートメント: データベース操作ステートメント

データベースの DDL ステートメント (データベース定義ステートメント) ライブラリ操作

-- :普通注释 当行注释
/* mysql的多行注释*/
#特殊注释
-- 查询当前mysql中自带的所有库有哪些
库在我们电脑磁盘上----> 文件夹
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |   mysql的默认配置库
| mysql              |   有user表 (管理员用户表) :root用户就在这个库中
| performance_schema |   mysql其他库(性能相关)
| test               |   测试库,但是不用它,自己创建新的库
+--------------------+
4 rows in set (0.00 sec)

-- 创建库
-- create database 库名;
mysql> create database myEE_2203 ;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| myee_2203          |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)


-- create database if not exists 库名;
mysql> create database if not exists  ee2203;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| ee2203             |
| myee_2203          |
| mysql              |
| performance_schema |
| test               |
+--------------------+
6 rows in set (0.00 sec)


-- 查询创建库的字符集
-- show create database  库名;
mysql> show create database myee_2203;
+-----------+--------------------------------------------------------------------+
| Database  | Create Database                                                    |
+-----------+--------------------------------------------------------------------+
| myee_2203 | CREATE DATABASE `myee_2203` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+-----------+--------------------------------------------------------------------+
1 row in set (0.00 sec)

-- 修改库的字符集
-- alter database 库名 default character set 字符集名称;
mysql> alter database myee_2203 default character set gbk;
Query OK, 1 row affected (0.00 sec)
mysql> show create database myee_2203;
+-----------+-------------------------------------------------------------------+
| Database  | Create Database                                                   |
+-----------+-------------------------------------------------------------------+
| myee_2203 | CREATE DATABASE `myee_2203` /*!40100 DEFAULT CHARACTER SET gbk */ |
+-----------+-------------------------------------------------------------------+
1 row in set (0.00 sec)

-- 删除库
-- drop database 库名 ;
mysql> drop database ee2203;
Query OK, 0 rows affected (0.01 sec)
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| myee_2203          |
| mysql              |
| performance_schema |
| test               |
+--------------------+

-- drop database if exists 库名 ; 如果存在这个库删除
mysql> drop database if exists myee_2203;
Query OK, 0 rows affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)
ログイン後にコピー

Databaseテーブルの作成、テーブルの変更、テーブルのクエリ、テーブルの削除を行う DDL ステートメント (データベース定義ステートメント)...

mysql常见的数据类型
     int :整数类型 默认最大长度11位字符,给int类型的数据的时候,当前存储的是值的真实长度
     	举例
     			年龄字段age  int类型
     			
     int(字符数):  整数类型, 	给int(3)这个值的时候,实际存储3位,但是赋值的时候不够3位  (使用很少)
     				id字段 1-----int(3) -------------------001
     				
     varchar(最大支持255个长度): 	字符串类型 
     		指定varchar(指定长度)
     date:仅仅是日期类型
     datetime:日期+时间类型 
     timestap:时间戳 (举例:管理员添加一个商品,商品上架的时间:当前系统瞬时时间 :2021-5-11 16:50分)
     double:小数类型 
     	double(几位数,小数点后保留的位数)
     	
     	举例:
     			double(4,2): 4位,小数点后保留2位
     clob:大字符类型  
     		支持 "大文本"
     blob:大字节类型
     		 最大支持4G
-- 建表之前,必须使用哪个库
-- use 库名;
mysql> use ee_2203;
Database changed
mysql>
/*
  create table 表名(
  		字段名称1 字段类型1,
  		字段名称2 字段类型2,
  		...
  		...
  		字段名称n 字段类型n
  ) ;

*/
mysql> create table student(
    -> id int,
    -> name varchar(10),
    -> age int,
    -> gender varchar(2),
    -> address varchar(50),
    -> socre double(3,1)
    -> );
    Query OK, 0 rows affected (0.02 sec)
    
-- 查询当前库中有哪些表
-- show tables ;
mysql> show tables ;
+-------------------+
| Tables_in_ee_2203 |
+-------------------+
| student           |
+-------------------+
1 row in set (0.00 sec)

mysql>

-- 查看表的结构 
-- desc 表名;
mysql> desc student;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id      | int(11)     | YES  |     | NULL    |       |
| name    | varchar(10) | YES  |     | NULL    |       |
| age     | int(11)     | YES  |     | NULL    |       |
| gender  | varchar(2)  | YES  |     | NULL    |       |
| address | varchar(50) | YES  |     | NULL    |       |
| socre   | double(3,1) | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
6 rows in set (0.01 sec)

-- 修改表的字段名称 
-- alter table 表名 change  旧字段名称 新的字段名称 以前的字段数据类型;

mysql> alter table student change gender sex varchar(2) ;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> desc student;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id      | int(11)     | YES  |     | NULL    |       |
| name    | varchar(10) | YES  |     | NULL    |       |
| age     | int(11)     | YES  |     | NULL    |       |
| sex     | varchar(2)  | YES  |     | NULL    |       |
| address | varchar(50) | YES  |     | NULL    |       |
| socre   | double(3,1) | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
6 rows in set (0.01 sec)

-- 修改表的字段类型 modify
-- alter table 表名 modify 字段名称 新的字段类型 ;
mysql> alter table student modify address varchar(100) ;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc student;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id      | int(11)      | YES  |     | NULL    |       |
| name    | varchar(10)  | YES  |     | NULL    |       |
| age     | int(11)      | YES  |     | NULL    |       |
| sex     | varchar(2)   | YES  |     | NULL    |       |
| address | varchar(100) | YES  |     | NULL    |       |
| socre   | double(3,1)  | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
6 rows in set (0.01 sec)

-- 修改表:给表中添加一个新的字段
-- alter table 表名 add 字段名称 字段类型;
mysql> alter table student add description varchar(200) ;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

-- 复制一张表
-- create table  新表名  like 旧表名;
mysql> create table teachear like student ;
Query OK, 0 rows affected (0.02 sec)

mysql> show tables;
+-------------------+
| Tables_in_ee_2203 |
+-------------------+
| student           |
| teachear          |
+-------------------+
2 rows in set (0.00 sec)

-- 删除表
-- drop table 表名;
-- drop table if exists 表名;
mysql> drop table if exists teachear;
Query OK, 0 rows affected (0.01 sec)

mysql> show tables;
+-------------------+
| Tables_in_ee_2203 |
+-------------------+
| student           |
+-------------------+
1 row in set (0.00 sec)
ログイン後にコピー

DML データ: データベース操作ステートメント: 操作テーブルのレコード

データのクエリ

-- 查询这个库中有哪些表
SHOW TABLES ;

-- 创建一张新的表学生表,id,姓名,年龄,性别,住址
CREATE TABLE student(
    id INT ,  -- 学号
    NAME VARCHAR(10), -- 姓名
    age INT,  -- 年龄
    gender VARCHAR(5), -- 性别
    address VARCHAR(50) -- 住址
) ;

-- 查询学生的表的结构
DESC student ;
ログイン後にコピー

データの挿入

-- 给学生表中插入数据 
--  插入数据的语法1:insert into 表名 values(值1,值2,值3,值4...值n); 插入全部数据
INSERT INTO student VALUES(1,&#39;高圆圆&#39;,42,&#39;女&#39;,&#39;西安市&#39;) ;

-- 插入表的数据支持 :一次插入多条数据
-- insert into 表名 values(值1,值2,值3,值4...值n),(值1,值2,值3,值4...值n),(值1,值2,值3,值4...值n);
INSERT INTO student VALUES(2,&#39;文章&#39;,35,&#39;男&#39;,&#39;咸阳市&#39;),
(3,&#39;马伊琍&#39;,40,&#39;女&#39;,&#39;上海市&#39;),(4,&#39;马保国&#39;,56,&#39;男&#39;,&#39;宝鸡市&#39;) ;

-- 语法2:插入部分字段,没有插入的字段,默认值就是null, 也支持一次性插入多条数据
-- insert into 表名(字段名称1,字段名称2....) values(值1,值2...) ;
INSERT INTO student(id,NAME,age,gender) VALUES(5,&#39;王宝强&#39;,35,&#39;男&#39;) ;
INSERT INTO student(id,NAME,age,gender) VALUES(6,&#39;张三丰&#39;,60,&#39;男&#39;),(7,&#39;令狐冲&#39;,38,&#39;男&#39;) ;

/*
注意事项:
	1)插入的这些值必须要和表中的字段对应上; 先后顺序保证一致!
	2)目前没有加入"数据库约束",可以插入非法数据,举例:id重复 ,
	后期需要使用数据库约束来限定用户的操作表的行为!
*/
-- 插入一个学生id为7的
INSERT INTO student VALUES(7,&#39;张佳宁&#39;,32,&#39;女&#39;,&#39;西安市&#39;) ;
ログイン後にコピー

データの変更

--  一般实际开发中修改:都是带条件修改  (推荐)
-- update 表名 set 字段名称 = 值 where 条件 ;

-- 需求:将name为张佳宁的学生id改为8
UPDATE student SET id = 8 WHERE NAME = &#39;张佳宁&#39; ;

-- 需求: 修改id为6的学生的姓名为 &#39;姚笛&#39; (id字段在实际开发中:都是非业务字段,以后唯一的)
UPDATE student SET NAME = &#39;姚笛&#39; WHERE id =  6 ;


-- 语法2:一次性修改多个字段
-- update 表名 set 字段名称1 = 值 ,字段名称2 =值2.... where 条件;

-- 需求:将id为6的学生 的年龄改为25,性别改为女,地址改为上海
UPDATE student SET age = 25,gender =&#39;女&#39;,address=&#39;上海市&#39; WHERE id = 6 ;


-- 语法3:不带条件 属于批量修改 (部分场景可以用的)
-- update 表名 set 字段名称= 值,字段名称2 =值2....
UPDATE student SET address = &#39;鄠邑区&#39; ;
ログイン後にコピー

データの削除

-- delete  from 表名 where 条件 ; 带条件删除记录 (使用的非业务字段id删除)
-- 需求:删除id为7的学生信息
DELETE FROM student WHERE id = 7 ;

-- delete from 表名 :删除全表数据
DELETE FROM student ;


-- truncate table 表名; 删除全表数据
TRUNCATE TABLE student;

/*
   面试题:
      delete from 表名 和 truncate table 表名 :两个区别?
      共同点:都是可以删除全表的记录的;
      不同点:
		delete from 表名 ; 仅仅只是将表的全部记录删除了,表还在!
它针对id(非业务字段:设置主键并且自增长),它不影响自增长主键的这个值; (数据库约束后面讲)
		truncat table 表名; 将表所有数据删除,而且还会把删除之后,
		自动创建一个张一模一样的表,影响自增主键的值!
*/

DROP TABLE student ;
SHOW TABLES ;
-- 创建一个学生表,id 加入主键(非空且唯一)和自增长(不断的自增1)约束
CREATE TABLE student(
	id INT PRIMARY KEY AUTO_INCREMENT , -- id主键并且自增长
	NAME VARCHAR(20),-- 姓名
	age INT 
);
-- 一次插入4条
INSERT INTO student(NAME,age) VALUES(&#39;高圆圆&#39;,42),(&#39;张佳宁&#39;,32),(&#39;文章&#39;,35),(&#39;王宝强&#39;,38) ;

-- 自增长的id可以自己给个值
INSERT INTO student  VALUES(15,&#39;高圆圆2&#39;,42);
INSERT INTO student(NAME,age) VALUES(&#39;姚笛&#39;,35) ;
ログイン後にコピー

DQL ステートメント: (データベース クエリ ステートメント)

-- DQL语句最通用的语法:查询表的全部数据
-- -- * 代表所有字段,仅仅是自己玩的时候可以用,实际开发中不能用*,需要写上全部的字段名称
SELECT * FROM student ; 




CREATE TABLE student3 ( 
	 id INT, -- 编号
	 NAME VARCHAR(20), -- 姓名
	 age INT, -- 年龄 
	 sex VARCHAR(5), -- 性别 
	 address VARCHAR(100), -- 地址 
	 math INT, -- 数学
	 english INT -- 英语
  );
 INSERT INTO student3(id,NAME,age,sex,address,math,english) 
 VALUES (1,&#39;马云&#39;,55,&#39;男&#39;,&#39; 杭州&#39;,66,78),
 (2,&#39;马化腾&#39;,45,&#39;女&#39;,&#39;深圳&#39;,98,87),
 (3,&#39;马景涛&#39;,55,&#39;男&#39;,&#39;香港&#39;,56,77),
 (4,&#39;柳岩 &#39;,20,&#39;女&#39;,&#39;湖南&#39;,76,65),
 (5,&#39;柳青&#39;,20,&#39;男&#39;,&#39;湖南&#39;,86,NULL),
 (6,&#39;刘德华&#39;,57,&#39;男&#39;,&#39;香港 &#39;,99,99),
(7,&#39;马德&#39;,22,&#39;女&#39;,&#39;香港&#39;,99,99),
(8,&#39;德玛西亚&#39;,18,&#39;男&#39;,&#39;南京&#39;,56,65);
ログイン後にコピー
1) 最も基本的なクエリ ステートメント select

-- 查询全表数据:select * from 表名;
SELECT * FROM student3 ;
-- 实际开发中查询全部字段,把字段名称全部写上
SELECT 
	id,
	NAME,
	age,
	sex,
	address,
	math,
	english

FROM 
	student3;
	
-- 查询全部字段的时候,给字段起一个别名  as &#39;别名名称&#39; ,as省略
SELECT 
  id AS &#39;编号&#39;,
  NAME AS &#39;姓名&#39;,
  age AS &#39;年龄&#39;,
  sex AS &#39;性别&#39;,
  address AS &#39;地址&#39;,
  math AS &#39;数学成绩&#39;,
  english AS &#39;英语成绩&#39; 
FROM
  student3 ;
-- as 可以省略的

SELECT 
  id  &#39;编号&#39;,
  NAME  &#39;姓名&#39;,
  age  &#39;年龄&#39;,
  sex  &#39;性别&#39;,
  address  &#39;地址&#39;,
  math  &#39;数学成绩&#39;,
  english  &#39;英语成绩&#39; 
FROM
  student3 ;
 -- 当表的名称比较长的时候,可以给表名起一个别名;
SELECT 
  s.`id` &#39;学生编号&#39;,
  s.`name` &#39;学生姓名&#39;,
  s.`age` &#39;学生年龄&#39;,
  s.`sex` &#39;学生性别&#39;,
  s.`address` &#39;学生地址&#39;,
  s.`math` &#39;数学成绩&#39;,
  s.`english` &#39;英语成绩&#39; 
FROM
  student3 s ;-- 起了一个别名s 
    
  -- 可以查询部分字段
 -- 需求:查询学生的姓名以及数学和英语成绩
 SELECT 
	NAME &#39;姓名&#39;,
	math &#39;数学成绩&#39;,
	english &#39;英语成绩&#39;
 FROM
     student3 ;
-- 需求:查询学生的地址信息
SELECT 

	address

FROM 
	student3;
-- 发现:字段冗余(重复度大) 字段去重      DISTINCT 后面跟上字段名称  
SELECT  DISTINCT address FROM student3;
ログイン後にコピー

2) DQL ステートメントの条件付きクエリ where キーワード

 -- 2.1)使用 赋值运算符=,比较运算符 <,<=,>=,>,!=,   mysql中的不等于 <>
 -- 2.2)Java中逻辑运算符:&&,||  mysql推荐使用 and , or
 -- 2.2)针对两个范围查询: 可以使用&&,可以使用and, 也可以 "字段名称 between 值1 and 值2"
 -- 需求:查询年龄大于20岁的学生所有信息     
SELECT
	 *
FROM
	student3 
	
WHERE  
	age > 20 ;

-- 需求:查询年龄在20到30之间的学生的姓名,年龄,住址 ,数学和英语成绩信息

SELECT 
  NAME &#39;姓名&#39;,
  age &#39;年龄&#39;,
  address &#39;住址&#39;,
  math &#39;数学成绩&#39;,
  english &#39;英语成绩&#39; 
FROM
  student3 
WHERE age >= 20 && age <= 30 ; -- && 逻辑双与

-- mysql中使用and 并列关系
SELECT 
  NAME &#39;姓名&#39;,
  age &#39;年龄&#39;,
  address &#39;住址&#39;,
  math &#39;数学成绩&#39;,
  english &#39;英语成绩&#39; 
FROM
  student3 
WHERE age >= 20 AND age <= 30 ; -- and 连接


-- 使用的between 值1 and 值2
SELECT
    NAME &#39;姓名&#39;,
    age &#39;年龄&#39;,
    address &#39;住址&#39;,
    math &#39;数学成绩&#39;,
    english &#39;英语成绩&#39; 
FROM
    student3 
WHERE 
	age BETWEEN 20  AND 30 ;

-- 需求:查询年龄是20岁学生的所有信息
SELECT  * FROM student3 WHERE age = 20 ;

-- 需求:查询年龄不是20岁的学生的所有信息
SELECT * FROM student3 WHERE age != 20 ; -- != Java中 的用法

SELECT * FROM student3 WHERE age <> 20 ;-- mysql中的不等于 <>


-- 需求:查询年龄是18岁或者是20或者是45岁的学生的所有信息
SELECT 
	* 
FROM 
	student3
WHERE 
	age = 18 || age =20 || age = 45 ;-- Java中逻辑双或||
	
	
SELECT 
	* 
FROM 
	student3
WHERE 
	age = 18 OR age =20 OR age = 45 ; -- Mysql中的or这个表示 或(并集)

-- 上面这个格式优化为 in(值1,值2,值3..值n) ;in集合语句	
	
SELECT  
    *
FROM
    student3
WHERE 
	age IN(18,20,45) ;
	
	
-- Java语言中:去判断某个条件的内容为null ,mysql语言不支持这个格式 ==null
-- 需求:查询学生的英语成绩为null的学生所有信息
-- select * from student3 where english == null ;
-- mysql中判断某个字段为null,使用的语法是 is null 
-- 判断某个字段不为null,使用的语法是 is not null

SELECT * FROM student3 WHERE english IS NULL ;
-- 需求:查询学生的英语成绩不为null的学生的所有信息
SELECT * FROM student3 WHERE english IS NOT NULL ;	



-- 关于int类型字段求和的时候,注意: int类型的值 + null 值 = null;

-- 查询学生的姓名以及英语和数学总分
SELECT  
    NAME &#39;姓名&#39;,
    (math+english) &#39;总分&#39;
FROM
    student3 ;
-- 上面这种情况:不太友好,数学成绩有值,但是结果求和是null
-- mysql提供函数 ifnull(字段名称,值);  如果字段名称是null,给一个默认值
SELECT  
    NAME &#39;姓名&#39;,
    (math+IFNULL(english,0)) &#39;总分&#39;
FROM
    student3 ;
    
SHOW VARIABLES LIKE &#39;%character%&#39; ;
ログイン後にコピー

3) DQL ステートメントの where 条件がファジー クエリの後に追加されます—キーワード like

-- select 字段列表 from 表名 where 字段名称 like &#39;%xxx%&#39; ;
-- %:代表任何多个字符或者某个字符   (使用居多):网站门户系统---"搜索商品" ,模糊搜索
-- _:代表某个单个字符

-- 需求:查询所有姓马的学生信息

SELECT
    *
FROM
    student3
WHERE 
    NAME LIKE   &#39;%马%&#39;
    
-- 查询学生姓名三个字符并且第二个字符是化的人
SELECT 
    *
FROM 	
     student3
WHERE 
     NAME  LIKE &#39;_化_&#39; ;
     
-- 查询姓名为三个字符的学生信息
SELECT 
    *
FROM 
	student3
WHERE 
	NAME LIKE &#39;___&#39; ;
ログイン後にコピー

4) 集計関数クエリ

针对int类型:
		单行单列数据
-- select  聚合函数 from 表名 where 还可以指定条件;

-- count(字段名称):查询表中记录 ,字段名称使用都是id,非业务字段
-- avg(字段名称): 查询这个字段中平均值 
-- sum(字段列表):求和函数
-- max(字段名称):最大值
-- min(字段名称):最小值

-- 需求:查询表的总记录数
-- select count(english) &#39;总记录数&#39; from student3; -- 前提条件使用业务字段查询,不能有null值
-- select count(ifnull(english,0)) &#39;总记录数&#39; from student3; 
SELECT COUNT(id) &#39;总条数&#39; FROM student3 ;
-- 查询数学平均分 avg(字段名称)
SELECT AVG(math) &#39;数学平均分&#39; FROM student3;
-- 数学和英语成绩求和的学生信息(姓名,和总分)
SELECT  
	SUM(math+IFNULL(english,0)) &#39;总分&#39;
FROM
        student3;
-- max()和min()
SELECT MAX(math) &#39;数学最高分&#39; FROM student3 ;


-- select语句嵌套select语句 --- 子查询
-- 需求:查询出学生数学成绩大于 数学平均分的学生所有信息;
-- 使用where 条件 后面带上 比较运算符...

--  Java中
-- int x =10,y ;
-- y = y+x ; 将10代入

-- 1)查询数学平均分是多少
SELECT AVG(math) FROM student3; -- 79.5000
-- 2)查询大于数学平均分的学生信息
SELECT 
	*
FROM 
	student3
WHERE 
	math > 79.5000;
	
-- 一步走
SELECT 
	*
FROM 
	student3
WHERE 
	math >  (SELECT AVG(math) FROM student3) ;
	
-- 查询数学成绩最高分的学生的姓名,年龄,地址以及数学成绩;
-- 1)查询最高分是多少
SELECT  MAX(math) FROM student3; -- 99
-- 2)查询最高分是这个成绩的学生信息
SELECT 
    NAME &#39;姓名&#39;,
    age &#39;年龄&#39;,
    address &#39;地址&#39;,
    math &#39;数学成绩&#39;
FROM 
    student3 
 WHERE 
	math = 99 ;


-- 一步走
SELECT 
    NAME &#39;姓名&#39;,
    age &#39;年龄&#39;,
    address &#39;地址&#39;,
    math &#39;数学成绩&#39;
FROM 
    student3 
 WHERE 
	math = 
	(SELECT  MAX(math) FROM student3) ;
ログイン後にコピー

5)DQL ソート クエリ順序 by

 select 字段列表 from 表名 order by 字段名称 排序规则(asc(默认值就是升序)或者desc 降序)

UPDATE student3 SET english = 88  WHERE id = 5 ;
UPDATE student3 SET english = 94 WHERE id = 6 ;

-- 需求:按照数学成绩升序排序 单个字段
SELECT 
   *
FROM 
    student3
ORDER BY 
	math ASC ; -- 默认不写排序规则,就是asc 升序

-- 同时条件和order by,order by在where的后面
-- 需求:数学成绩大于56分的学生进行数学的降序排序
SELECT
   NAME ,
   math
FROM
    student3 
WHERE  math > 56    -- 先满足条件,才能排序!where 必须order by之前
ORDER BY math DESC ;

-- 多个字段要同时排序,首先第一个字段排序规则,然后才是第二个字段
-- 需求:数学成绩降序,英语成绩升序排序
SELECT 
    *
 FROM 
    student3 
 ORDER BY 
	math DESC , english ASC ;

SELECT * FROM student3 ;
ログイン後にコピー

6)DQL ステートメント グループ クエリ: グループ化

-- select 字段列表 from 表名  group by 分组字段名称;

-- 注意事项:  1)查询的字段列表中可以使用 分组字段
     --       2)group by之后不能使用聚合函数

-- 需求:按照性别分组,查询出他们的数学成绩的平均分
SELECT  
     sex &#39;性别&#39;, -- 查询的分组字段
     AVG(math) &#39;数学平均分&#39; -- 查询每一个组的数学平均分
FROM
	student3 
GROUP BY 
	sex ;
	
-- 带条件分组查询的语法:  where 条件 必须放在group by 之前,否则语法错误!
-- select 字段列表包含分组字段,聚合函数.. from 表名 where 条件  group by 分组字段;

-- 需求:按照性别分组,查询出他们的数学成绩的平均分,数学成绩大于70分的参与分组

 SELECT
     sex &#39;性别&#39;,
     AVG(math) &#39;数学平局分&#39;
 FROM

	student3

WHERE 
	math > 70    -- 先满足条件,然后才能分组;

GROUP BY 	
	sex   ;
ログイン後にコピー

7) フィルタ クエリには

-- where条件,group by,having  必须先有条件,分组,然后才筛选!
-- 注意:筛选的后面可以使用聚合函数,group by的后面是不能使用聚合函数的
-- 需求:按照性别分组,查询数学平局分,条件:数学成绩大于70的人参与分组, 筛选出人数大于2的这一组
SELECT 
     sex  &#39;性别&#39;,
     COUNT(id) &#39;总人数&#39;,
     AVG(math) &#39;数学平均分&#39;
     
FROM
    student3	
WHERE 
	math > 70
GROUP BY 
	sex 
HAVING      -- 后面可以使用聚合函数
	COUNT(id) > 2 ;
	
-- 优化为
SELECT 
     sex  &#39;性别&#39;,
     COUNT(id) 人数,
     AVG(math) &#39;数学平均分&#39;
     
FROM
    student3	
WHERE 
	math > 70
GROUP BY 
	sex 
HAVING      -- 后面可以使用聚合函数
	人数 > 2 ;
ログイン後にコピー

があります。8) ページング クエリの制限は

-- select 字段列表 from 表名   limit 起始行数,每页显示的条数;
	
-- 起始行数:从0开始算的,    
-- 起始行数 = (当前页码-1)*每页显示的条数
-- 前提条件:每页显示2条, 
-- 第一页数据
SELECT * FROM student3   LIMIT 0,2;

-- 第二页数据
SELECT * FROM student3 LIMIT 2,2 ;

-- 第三页数据
SELECT * FROM student3 LIMIT 4,2 ;

-- 第四页数据
SELECT * FROM student3 LIMIT 6,2 ;

-- 第五页数据
SELECT * FROM student3 LIMIT 8,2;

-- 第六页数据
SELECT * FROM student3 LIMIT 10,2;

-- 第七页数据

SELECT * FROM student3 LIMIT 12,2;
ログイン後にコピー

[関連する推奨事項:

JavaScript ビデオ チュートリアル

プログラミング ビデオ ]

以上がJavaScriptはSQL言語ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー Dec 17, 2023 pm 05:30 PM

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 Dec 17, 2023 pm 02:54 PM

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 Dec 17, 2023 pm 12:09 PM

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 Dec 17, 2023 am 09:39 AM

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 Dec 17, 2023 pm 05:13 PM

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 Jan 05, 2024 pm 06:08 PM

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

JavaScriptでinsertBeforeを使用する方法 JavaScriptでinsertBeforeを使用する方法 Nov 24, 2023 am 11:56 AM

使用法: JavaScript では、insertBefore() メソッドを使用して、DOM ツリーに新しいノードを挿入します。このメソッドには、挿入される新しいノードと参照ノード (つまり、新しいノードが挿入されるノード) の 2 つのパラメータが必要です。

JavaScript で HTTP ステータス コードを簡単に取得する方法 JavaScript で HTTP ステータス コードを簡単に取得する方法 Jan 05, 2024 pm 01:37 PM

JavaScript で HTTP ステータス コードを取得する方法の紹介: フロントエンド開発では、バックエンド インターフェイスとの対話を処理する必要があることが多く、HTTP ステータス コードはその非常に重要な部分です。 HTTP ステータス コードを理解して取得すると、インターフェイスから返されたデータをより適切に処理できるようになります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法と、具体的なコード例を紹介します。 1. HTTP ステータス コードとは何ですか? HTTP ステータス コードとは、ブラウザがサーバーへのリクエストを開始したときに、サービスが

See all articles