JS和Mysql学习-day13

JS和Mysql学习-day13

1. JS

1.1 js简单了解


//JS代码
function easymethod() {
    //在浏览器的控制台打印测试数据
    console.log("this is easymethod");
    //声明对象
    //js是弱类型语言,不用靠数据类型来声明变量
    //局部变量
    let obj = {};
    //常量
    const username = "张三";
    //全局变量
    var sex = "男";
    //设置对象属性
    obj.name = "李四";
    //设置对象的新属性
    obj["sex"] = "男";
    
    obj.study = function() {}
    var proName = "s'e'x";
    obj[proName] = "女";

    //删除对象属性
    delete obj.sex;
    obj = 1;
    //转义符
    obj = "ab\"\"c";

    console.log(obj);
    console.log(proName);

    method(123);

}
const systemName = "super unversial duck manage system";

//随机数与java类似
console.log(Math.random() * 10);

//方法的变量可以不填,默认值位undefined
var method = function(a, b) {
    if (a) {
        console.log("这是a----------" + a);
    }
    console.log("这是b----------" + b);
    console.log(arguments);
}


var str = "123";
console.log(typeof str); //typeof obj 返回这个变量的类型的名称  String
num = 123;
console.log(typeof num);//number

js的数组没有下标限制,下标可以是负数

对数组的处理,重点有五个函数

unshift(): 在数组的头部添加元素,其他元素依次后移

shift(): 删除数组头部元素,其他元素依次前移

push(): 在数组尾部添加元素

pop(): 删除数组尾部的元素

splice(): 填入一个参数,删除指定下标位置及其后面的所有元素;填入两个参数,删除指定下标位置的元素及其后面指定的元素个数;填入两个以上参数,删除下标位置删除指定个数,并添加元素

在这里插入图片描述

//对数组的处理  5个函数
arr = [1, "123"];
console.log(arr);
arr[8] = 99;
arr[3] = {};
console.log(arr)

//数组添加元素
//从头部添加元素
arr.unshift("头部");
console.log(arr);
//尾部添加
arr.push("尾部");
console.log(arr);
//头部删除
arr.shift();
console.log(arr)
//尾部删除
arr.pop();
console.log(arr);
//删除并插入
arr = [1, 2, 3, 4]
arr.splice(1); //删除下标位置以及其后所有元素
console.log(arr); //[1]

arr = [1, 2, 3, 4]
arr.splice(1, 2); //删除下标位置删除指定个数
console.log(arr);// [1,4]

arr = [1, 2, 3, 4]
arr.splice(1, 0, 33, 77, 55); //删除下标位置删除指定个数,添加元素
console.log(arr);//[1,33,77,55,2,3,4]

1.2 实现抽号器

setInterval(): 周期执行任务

setTimeout(): 延迟执行任务

/* function easymethod(){}
//周期执行
setInterval(easymethod()); */
setInterval(function() {
    console.log(Math.random());
}, 300);

//延迟执行
setTimeout(function() {
    console.log(Math.random())
}, 1000)
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			.maxBox {
				padding: 4px 6px;
				font-size: 16px;
				color: #3EAFE0;
			}

			.clickBtn {
				border: 1px solid #3EAFE0;
				background-color: #3EAFE0;
				color: #FFF;
				font-size: 14px;
				padding: 4px 6px;
			}

			.result {
				font-size: 80px;
				color: #3EAFE0;
				font-weight: bold;
				padding: 30px;
			}

			.txt_center {
				text-align: center;
			}

			.exist {
				border: 1px solid #EEE;
				padding: 20px;
				margin: 20px auto;
				width: 600px;
				min-height: 100px;
				text-align: left;
			}

			.exist span {
				display: inline-block;
				padding: 2px 10px;
				margin: 4px;
				border-radius: 3px;
				background-color: #3EAFE0;
				color: #FFFFFF;
			}

			.info {
				border: 1px solid blue;
				color: #000;
				font-weight: 500;
				padding: 20px;
				margin: 20px auto;
				width: 600px;
			}
		</style>
	</head>
	<body>
		<div class="txt_center">
			<div class="result">
				<span class="" id="result">0</span>
			</div>
			<input class="maxBox" type="text" id="txt" placeholder="请在里面输入号码最大值!">
			<input class="clickBtn" type="button" id="btn" value="抽号">
			<div class="exist">
				<div>已抽取:</div>
				<div id="exist">
					<span>23</span>
					<span>65</span>
					<span>12</span>
				</div>
			</div>
		</div>
		<!--练习说明-->
		<div class="info">
			1、在文本框中输入抽号最大值
			<br /> 2、点击按钮,开始抽号,随机生成1~最大值之间的整数
			<br /> 3、已经抽取的号码存入一个数组
			<br /> 4、为了保证号码的唯一性,每次生成一个号码,跟数组中的已抽取的号码比对
			<br /> 5、如果已存在,重新生成号码
			<br /> 6、如果不存在,放入数组中保存,并显示出来
			<br /> 7、将号码结果放入result中显示出来
			<br /> 8、将已经生成的号码(数组)存入exist中显示出来
			<br /> 9、给抽号按钮添加一个3s倒计时,倒计时结束前不可点击按钮
		</div>

		<script>
			const result = document.getElementById("result");
			const txt = document.getElementById("txt");
			const btn = document.getElementById("btn");
			const exist = document.getElementById("exist");
			const arr = [];
			var start = false;
			btn.onclick = method;

			function method() {
				var val = txt.value;
				if (!val) {
					alert("请输入数字");
				} else {
					if (!start) {
						//初始化
						start = true;
						txt.setAttribute("readonly", "readonly");
						for (var i = 1; i <= val; i++) {
							arr[i - 1] = i;
						}
						exist.innerHTML = "";
					} else if (start && arr.length > 0) {
						//数字跳动起来
						var interval = setInterval(function() {
							btn.disabled = true;
							var randomIndex = Math.floor((Math.random() * arr.length));
							var num = arr[randomIndex];
							result.innerHTML = num;
						}, 100)
						setTimeout(function() {
							//清空之前跳动计时显示
							clearInterval(interval);
							var randomIndex = Math.floor((Math.random() * arr.length));
							var num = arr[randomIndex];
							result.innerHTML = num;
							exist.innerHTML = exist.innerHTML + "<span>" + num + "</span>";
							arr.splice(randomIndex, 1);
							btn.disabled = false;
						}, 800)

					} else {
						start = false;
						txt.removeAttribute("readonly");
						txt.value = "";
					}
				}

				/* function easymethod(){
					
				}
				//周期执行
				setInterval(easymethod()); */
				/* setInterval(function() {
					console.log(Math.random());
				}, 300); */

				//延迟执行
				setTimeout(function() {
					console.log(Math.random())
				}, 1000)

			}
		</script>
	</body>
</html>

2. Mysql

2.1 认识Mysql

Mysql是关系型数据库,是管理数据库的工具

命令行登录mysql

mysql -u 用户名 -p 用户密码

在这里插入图片描述

查看数据库,创建数据库,删除数据库,退出数据库

show databases;
create database data;
drop database data;
quit;
exit;

在这里插入图片描述

2.2 navicat连接mysql

在这里插入图片描述

连接成功后,双击建立的连接,结果如下图所示

在这里插入图片描述

新建查询,选择对应的表就可以输入sql语句来进行操作了

在这里插入图片描述

2.3 有关表的sql语句

注释

1.双横线加空格

2.井号

-- 空格不能省略
#这是一个注释

创建表

-- 表是数据库中存储数据的主题
-- 创建表 表名 t_user user
create table staff(
-- 表中字段
-- 主键 是表中数据唯一的标识 不可重复 PRIMARY KEY
-- auto_increment 在插入数据时,该列的值无需指定,会自动递增
id int auto_increment PRIMARY KEY,
-- varchar(最大长度) 可变字符串类型
-- not null定义该字段不能为空
code varchar(20) not null,
name varchar(20) not null,
-- 数值一共存储10位,其中两位用来存储小数
-- 工资数据类型用decimal
salary decimal(10,2)
)

在起名时(列名,表名)经常会用到一些关键字,可以用着重号(`)声明

create table `table`(
`varchar` varchar(20)
)

修改表 alter

-- 修改表名 rename
ALTER TABLE <原表名> RENAME TO|AS <新表名>
-- 设置表编码 character set
ALTER TABLE <表名> CHARACTER SET <编码格式>
-- 添加列 add
ALTER TABLE <表名> ADD <列名> VARCHAR (20) <约束>
-- 修改列 modify
-- 重新定义列
ALTER TABLE <表名> MODIFY <列名> VARCHAR (20) <约束>
-- 重新放置某列之后
ALTER TABLE <表名> MODIFY <列名> VARCHAR (20) AFTER<列名2>
-- 将某列放在表的第一列
ALTER TABLE <表名> MODIFY <列名> VARCHAR (20) FIRST
-- 修改列名 change
ALTER TABLE <表名> CHANGE <原列名> <新列名> VARCHAR (200)
-- 删除列
ALTER TABLE <表名> DROP COLUMN <列名>;

示例

-- 表是数据库中存储数据的主体
-- 创建表 表名 t_user user
create table staff(
-- 表中字段
-- 主键 是表中数据唯一的标识 不可重复
-- auto_increment 在插入数据时,该列的值可以不指定,会自动递增
id int auto_increment PRIMARY KEY,
-- varchar(最大长度) 可变字符串类型
code varchar(20) not null,
name varchar(20) not null,
-- 数值一共存储10位,其中两位用来存储小数
salary decimal(10,2)
)


-- 重命名表
alter table staff rename to t_staff;
alter table t_staff rename as staff;
-- 设置编码
-- mysql8.0 utf8 mb3 mb4 maxxbyte
-- 不同的字符占用的空间是不一样的
-- 数字,字母,欧洲部分语言字符占一个字节
-- 中东,阿拉伯语言字符占两个字节
-- 中文,韩文,日文,东南亚语言字符占三个字节
alter table staff character set utf8mb3;

-- 添加列
alter table staff add column sex varchar(3);

-- 重新定义列
alter table staff modify sex varchar(20) not null;
-- 定义列的位置
alter table staff modify sex varchar(20) not null after name;
-- 列重命名
alter table staff change sex age int not null;
-- 删除列
alter table staff drop column age;

-- 在起名时(列名,表名)经常会用到一些关键字,可以用着重号声明
create table `table`(
`varchar` varchar(20)
)

删除表

DELETE TABLE <表名>
delete table staff;

er table staff add column sex varchar(3);

– 重新定义列
alter table staff modify sex varchar(20) not null;
– 定义列的位置
alter table staff modify sex varchar(20) not null after name;
– 列重命名
alter table staff change sex age int not null;
– 删除列
alter table staff drop column age;

– 在起名时(列名,表名)经常会用到一些关键字,可以用着重号声明
create table table(
varchar varchar(20)
)


删除表

```mysql
DELETE TABLE <表名>
delete table staff;
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值